如何在指定的字符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(','));