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

IT技术 javascript jquery substring substr
2021-01-18 14:46:40

我试图在 ',' 逗号之前提取所有内容。我如何在 JavaScript 或 jQuery 中执行此操作?我试过这个,但不工作..

1345 albany street, Bellevue WA 42344

我只想获取街道地址。

var streetaddress= substr(addy, 0, index(addy, '.')); 
6个回答
var streetaddress= addy.substr(0, addy.indexOf(',')); 

虽然它不是关于每种方法的作用的明确信息的最佳位置(mozilla 开发者网络对此更好),但w3schools.com非常适合向您介绍语法。

如果正在搜索的字符串不包含搜索字符的实例,这将不起作用。它将返回一个空字符串。
2021-03-23 14:46:40
2021-03-25 14:46:40
var streetaddress = addy.split(',')[0];
摆动和回旋处 - 它不必要地创建一个数组,但如果停止字符不在字符串中,它至少可以工作
2021-04-04 14:46:40
2021-04-07 14:46:40
以前的评论链接已死:/
2021-04-09 14:46:40

试试这个:

streetaddress.substring(0, streetaddress.indexOf(','));
为什么不喜欢我的答案?如果这个答案是正确的stackoverflow.com/questions/3745515/……我的答案与接受的答案一样准确,并且适​​用于 0 以外的起始索引。
2021-03-17 14:46:40
正如上面 David G 所指出的,可能是因为如果没有逗号它就不起作用。OP 可能暗示该字符串总是有一个逗号,但在许多情况下,不能保证分隔符。参见jsfiddle.net/13pkp1xn
2021-03-17 14:46:40
//split string into an array and grab the first item

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

此外,我建议您使用驼峰式大小写(streetAddress)命名您的变量,以提高可读性。

您可以使用@antak 在stackoverflow.com/a/22386366/601386 中作为评论发布的内容保存一些处理并在第一个“,”处停止拆分addy.split(',', 1)[0]请参阅developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
2021-03-18 14:46:40
使用数组解构,您可以这样做:const [streetAddress,] = addy.split(','); 这对于您需要多个值的情况很有帮助,例如:(let [callerIdName, callerId] = callerIdString.split('<'); 原始 callerIdString 格式为 MCMULLIN,PARKER <+1XXXXXXXXXXX>)
2021-03-18 14:46:40
这比使用indexof的方法要好,在没有逗号的场景下
2021-03-19 14:46:40
此答案与 2015 年 10 月 30 日发布的答案是否完全相同?
2021-03-19 14:46:40

如果您喜欢简短,只需使用RegExp

var streetAddress = /[^,]*/.exec(addy)[0];
这个方法非常好,例如,如果你想在空白处分割: /[^\s]*/.exec(...)
2021-03-16 14:46:40
当 remove 子字符串不一定存在时:streetAddress = addy.replace(/,.*$/, '');,这将删除第一个匹配 (of ,)之后的所有内容,前提是它存在
2021-03-28 14:46:40
+1,我认为这是一个合理的方法,但我从中得到了暗示并采用了 addy.split(',', 1)[0]
2021-04-04 14:46:40