如何在指定的字符jQuery或JavaScript之前抓取子string

我试图提取','逗号前的所有内容。 我如何在JavaScript或jQuery中做到这一点? 我试过这个,不工作..

1345 albany street, Bellevue WA 42344 

我只想抓住街道地址。

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

虽然它不是每种方法的确切信息的最佳位置( mozilla开发人员networking更好) w3schools.com是很好的介绍你的语法。

 var streetaddress = addy.split(',')[0]; 

尝试这个:

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

如果你喜欢它简单地使用RegExp :

 var streetAddress = /[^,]*/.exec(addy)[0]; 
 //split string into an array and grab the first item var streetaddress = addy.split(',')[0]; 

此外,我build议命名你的variables骆驼案(streetAddress)为更好的可读性。

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

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

在这种情况下,我们利用了substr的第二个参数是一个长度的事实,我们知道我们的子串从0开始。

最重要的答案不是一个通用的解决scheme,因为如果string不包含您正在寻找的字符的不良行为。

如果你想在一般情况下的正确行为,使用这种方法或大卫G的方法,而不是最高的答案

正则expression式和拆分方法也可以工作,但对于这个特定的问题可能会稍微慢一点/矫枉过正。

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

(你应该阅读一个JavaScript教程 ,尤其是关于string函数的部分)

如果你想返回原始string,如果它不包含search字符,那么你可以使用匿名函数(闭包):

 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(','));