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

时间:2010-09-30 09:50:31

标签: javascript regex replace

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

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

我想结束: test1,test2和test3

我正在尝试这样的事情:

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

但它不起作用

3 个答案:

答案 0 :(得分:46)

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

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

编辑:

以上内容完全适用于定义的要求(尽管替换字符串是任意松散的),但根据评论的批评,下面更能反映原始要求的精神。

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

答案 1 :(得分:4)

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

$1指的是匹配的第一个捕获组(\w+)

答案 2 :(得分:0)

正则表达式搜索模式\ 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     第3行:23233

然而找不到Line2:sadXYZ!X
哪个只缺少一个空格