我试图在','逗号之前提取所有内容。我如何在JavaScript或jQuery中执行此操作?我试过这个但没有工作..
1345 albany street, Bellevue WA 42344
我只想抓住街道地址。
var streetaddress= substr(addy, 0, index(addy, '.'));
答案 0 :(得分:324)
var streetaddress= addy.substr(0, addy.indexOf(','));
虽然对于每种方法的确切信息(mozilla developer network更好),最佳位置并不是最佳位置,但w3schools.com有助于向您介绍语法。
答案 1 :(得分:126)
var streetaddress = addy.split(',')[0];
答案 2 :(得分:26)
试试这个:
streetaddress.substring(0, streetaddress.indexOf(','));
答案 3 :(得分:14)
//split string into an array and grab the first item
var streetaddress = addy.split(',')[0];
此外,我建议使用camel-case(streetAddress)命名变量,以提高可读性。
答案 4 :(得分:13)
如果你喜欢简短,只需使用RegExp:
var streetAddress = /[^,]*/.exec(addy)[0];
答案 5 :(得分:8)
与David G的回答几乎相同但没有匿名功能,如果你不想包括一个。
s = s.substr(0, s.indexOf(',') === -1 ? s.length : s.indexOf(','));
在这种情况下,我们利用substr
的第二个参数是一个长度的事实,并且我们知道我们的子字符串从0开始。
最佳答案是不是通用解决方案,因为如果字符串不包含您要查找的字符,则会出现不良行为。
如果您想在通用案例中使用正确的行为,请使用此方法或David G的方法,而不是最佳答案
正则表达式和拆分方法也可以使用,但对于这个特定问题可能会有点慢/过度。
答案 6 :(得分:5)
var streetaddress = addy.substr(0, addy.indexOf('.'));
(您应该通读javascript tutorial,尤其是关于String functions的部分
答案 7 :(得分:5)
您也可以使用shift()
。
var streetaddress = addy.split(',').shift();
根据MDN网络文档:
shift()
方法从数组中删除第一个元素并返回已删除的元素。此方法更改数组的长度。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift
答案 8 :(得分:4)
var newString = string.substr(0,string.indexOf(','));
答案 9 :(得分:4)
如果你想要保持原始字符串不变,如果它不包含搜索字符,那么你可以使用匿名函数(一个闭包):
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,',');
答案 10 :(得分:3)
您可以使用正则表达式,因为如果符合要求,它将为您提供字符串。该代码将类似于:
const address = "1345 albany street, Bellevue WA 42344";
const regex = /[1-9][0-9]* [a-zA-Z]+ [a-zA-Z]+/;
const matchedResult = address.match(regex);
console.log(matchedResult[0]); // This will give you 1345 albany street.
所以要分解代码。 [1-9][0-9]*
基本上意味着第一个数字不能为零,而必须是1-9
之间的数字,而下一个数字可以是0-9
中的任何数字,并且有时可能出现零次或多次。数字只是一个数字,然后它与一个空格匹配。 [a-zA-Z]
基本上将所有大写字母与小写字母匹配,并且必须出现一次或多次,然后重复一次。
答案 11 :(得分:0)
str = 'This is how we go to the place!'
az.get_everything_before(str, 'place')
结果:这就是我们进入
的方式str = 'This is how we go to the place!'
az.get_everything_after(str, 'go')
结果:到该位置!
和 between 中:
str = 'This is how we go to the place!'
az.get_everything_between(str, 'how', 'place')
结果:我们进入