4

我有一个字符串,它代表 Javascript 中的地址,比如“某个地址、城市、邮政编码”。

我正在尝试删除“邮政编码”部分。

我想为此使用拆分方法。我只想知道一个正则表达式,它将在我的字符串中找到最后一次出现的 ' , '。

我试过写表达式,比如

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

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

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

4

4 回答 4

8

如果您只想使用.split()split on","并获取结果数组的最后一个元素:

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

括号捕获您关心的部分。

于 2013-06-29T06:35:54.537 回答
5

pop() 将删除数组的最后一个元素:

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

你可以用这个

于 2013-06-29T06:32:47.980 回答
4

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

以这种方式使用它

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

或者

这更具可读性

 var postcode=address.substr(address.lastIndexOf(","));
于 2013-06-29T06:36:01.303 回答
1
var m = /,\s*([^,]+)$/.exec('Some address, city, postcode');
if (m) {
    var postcode = m[1];
}
于 2013-06-29T06:39:46.427 回答