Как заменить последнее вхождение символов в строку, используя JavaScript - PullRequest
28 голосов
/ 30 сентября 2010

У меня проблема с поиском, как заменить последние ',' в строке на 'и':

Имея эту строку: test1, test2, test3

и я хочу закончить словами: test1, test2 и test3

Я пытаюсь что-то вроде этого:

var dialog = 'test1, test2, test3';    
dialog = dialog.replace(new RegExp(', /g').lastIndex, ' and ');

но это не работает

Ответы [ 3 ]

47 голосов
/ 30 сентября 2010
foo.replace(/,([^,]*)$/, ' and $1')

используйте привязку $ ( конец строки ), чтобы указать свою позицию, и найдите шаблон справа от индекса запятой, который не включает дальнейших запятых.

Edit:

Вышесказанное работает в точности для определенных требований (хотя строка замены произвольно свободна), но на основе критики из комментариев ниже лучше отражает дух первоначального требования.

console.log( 
   'test1, test2, test3'.replace(/,\s([^,]+)$/, ' and $1') 
)
4 голосов
/ 30 сентября 2010
result = dialog.replace(/,\s(\w+)$/, " and $1");

$1 относится к первой группе захвата (\w+) матча.

0 голосов
/ 13 января 2017

шаблон регулярного выражения \ s ([^,] +) $

Line1: If not, sdsdsdsdsa sas ., sad, whaterver4
Line2: If not, fs  sadXD sad ,  ,sadXYZ!X
Line3: If not d,,sds,, sasa sd a, sds, 23233

Поиск по шаблонам находок Line1: whaterver4 Строка3: 23233

Пока не находит Line2: sadXYZ! X
Который пропускает только пробелы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...