使用正则表达式在JavaScript中查找字符串中最后一个逗号的位置

5

我有一个字符串代表着一个地址,比如说在Javascript中,“某个地址,城市,邮编”。

我想要从中获取“邮编”的部分。

我想要使用split方法来实现。我只需要知道一个正则表达式,可以找到我的字符串中最后一个出现的“ , ”。

我已经尝试过编写以下表达式:

address.split("/\,(?=[^,]*$)/"); 

并且。
address.split(",(?=[^,]*$)");

但是这些似乎不起作用。帮忙!

也许这个可以帮助 https://stackoverflow.com/a/25658003/4573839 - yu yang Jian
4个回答

9
如果你想使用 .split(),只需在 "," 上拆分并取得结果数组的最后一个元素即可:
var postcode = address.split(",").pop();

如果你想要使用正则表达式,为什么不写一个直接获取最后一个逗号后文本的正则表达式呢:
var postcode = address.match(/,\s*([^,]+)$/)[1]

我指定的正则表达式匹配:

,          // a comma, then
\s*        // zero or more spaces, then
([^,]+)    // one or more non-comma characters at the
$          // end of the string

括号捕获你关心的部分。


5

pop()会移除数组的最后一个元素:

address.split(",").pop()  

您可以使用这个。

这是一个不错的方法!但是我想到了这个!: var comindex = address.lastIndexOf(","); var half1 = address.substring(0,comindex); var half2 = address.substring(comindex,full.length); - Hamza Tahir

4

使用双引号会将其视为字符串

可以这样使用

 address.split(/,(?=[^,]*$)/);

或者

这样更易读

 var postcode=address.substr(address.lastIndexOf(","));

1
var m = /,\s*([^,]+)$/.exec('Some address, city, postcode');
if (m) {
    var postcode = m[1];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接