Найти последнее вхождение запятой в строке с помощью регулярных выражений в JavaScript

У меня есть строка, которая представляет адрес в Javascript, скажем, "какой-то адрес, город, почтовый индекс".

Я пытаюсь вывести часть "почтовый индекс".

Я хочу использовать метод разделения для этого. Я просто хочу знать регулярное выражение, которое найдет последнее вхождение ',' в моей строке.

Я пытался написать такие выражения, как

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

а также

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

Но это не похоже на работу. Помогите!

4 ответа

Если вы хотите использовать .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

Где скобки охватывают ту часть, которая вам небезразлична.

pop() удалит последний элемент массива:

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

Вы можете использовать это

С двойными кавычками это трактуется как строка

Используйте это так

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

Или же

Это более читабельно

 var postcode=address.substr(address.lastIndexOf(","));
var m = /,\s*([^,]+)$/.exec('Some address, city, postcode');
if (m) {
    var postcode = m[1];
}
Другие вопросы по тегам