我在查找如何用'和'替换字符串中的最后一个','时遇到问题:
有这个字符串: test1,test2,test3
我想结束: test1,test2和test3
我正在尝试这样的事情:
var dialog = 'test1, test2, test3';
dialog = dialog.replace(new RegExp(', /g').lastIndex, ' and ');
但它不起作用
答案 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
哪个只缺少一个空格