Подтвердить что ты не робот

Как заменить последнее вхождение символов в строке с помощью javascript

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

С помощью этой строки: test1, test2, test3

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

Я пробую что-то вроде этого:

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

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

4b9b3361

Ответ 1

foo.replace(/,([^,]*)$/, ' and $1')

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

Редактировать:

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

console.log( 
   'test1, test2, test3'.replace(/,\s([^,]+)$/, ' and $1') 
)

Ответ 2

result = dialog.replace(/,\s(\w+)$/, " and $1");

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

Ответ 3

шаблон поиска регулярных выражений \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

Поиск с помощью паттернов   Линия1: whaterver4   Line3: 23233

Тем не менее, не найти Line2: sadXYZ! X
Что отсутствует пробелы