我正在尝试提取','逗号之前的所有内容。如何在JavaScript或jQuery中做到这一点?我试过了,但没有用。

1345 albany street, Bellevue WA 42344

我只想知道街道地址。

var streetaddress= substr(addy, 0, index(addy, '.')); 

当前回答

如果你想要原封不动地返回不包含搜索字符的原始字符串,那么你可以使用匿名函数(闭包):

var streetaddress=(function(s){var i=s.indexOf(',');
   return i==-1 ? s : s.substr(0,i);})(addy);

这可以更通用:

var streetaddress=(function(s,c){var i=s.indexOf(c);
   return i==-1 ? s : s.substr(0,i);})(addy,',');

其他回答

var newString = string.substr(0,string.indexOf(','));
var streetaddress = addy.split(',')[0];
const streetAddress = addy.substring(0, addy.indexOf(","));

虽然W3Schools.com不是提供每种方法的确切信息的最好地方(MDN Web Docs更适合这一点),但它很适合向你介绍语法。

几乎和David G的答案一样,但是没有匿名函数,如果你不想包含一个的话。

s = s.substr(0, s.indexOf(',') === -1 ? s.length : s.indexOf(','));

在本例中,我们利用了substr的第二个参数是一个长度,并且我们知道子字符串从0开始。

上面的答案不是一个通用的解决方案,因为如果字符串不包含您正在寻找的字符,就会出现不受欢迎的行为。

如果你想要在一般情况下正确的行为,使用这个方法或者大卫G的方法,而不是上面的答案

Regex和split方法也可以工作,但对于这个特定的问题可能有点慢/过度。

试试这个:

streetaddress.substring(0, streetaddress.indexOf(','));