Найти последнее вхождение запятой в строке с помощью регулярных выражений в 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];
}