如何使用javascript替换字符串中最后出现的字符

Hen*_*bæk 30 javascript regex replace

我在查找如何用'和'替换字符串中的最后一个','时遇到问题:

有这个字符串:test1,test2,test3

我希望以:test1,test2和test3结束

我正在尝试这样的事情:

var dialog = 'test1, test2, test3';    
dialog = dialog.replace(new RegExp(', /g').lastIndex, ' and ');
Run Code Online (Sandbox Code Playgroud)

但它不起作用

ann*_*ata 50

foo.replace(/,([^,]*)$/, ' and $1')
Run Code Online (Sandbox Code Playgroud)

使用$(行尾)锚点为您提供位置,并在逗号索引右侧查找不包含任何逗号的模式.

编辑:

上述内容完全适用于定义的要求(尽管替换字符串是任意松散的),但基于评论的批评,下面更好地反映了原始要求的精神.

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


spl*_*ash 5

result = dialog.replace(/,\s(\w+)$/, " and $1");
Run Code Online (Sandbox Code Playgroud)

$1(\w+)的是比赛的第一个捕获组。