使用正则表达式将最后一个逗号分隔值替换为另一个

San*_*ool 4 javascript regex jquery

我有一个字符串如下:

var str = "a,b,c,a,e,f"; 
Run Code Online (Sandbox Code Playgroud)

我需要的是将另一个逗号分隔的元素替换为另一个.

ie, str = "a,b,c,a,e,anystring"; 
Run Code Online (Sandbox Code Playgroud)

我已经使用split方法完成了它并添加它来创建一个新的字符串.但它没有按预期工作

我做了如下:

var str = "a,b,c,d,e,f";

var arr = str.split(',');

var res = str.replace(arr[5], "z");
alert(res);
Run Code Online (Sandbox Code Playgroud)

有没有正则表达式可以提供帮助?

Pra*_*lan 10

您可以使用replace()正则表达式/,[^,]+$/匹配最后一个字符串

var str = "a,b,c,d,e,old";
var res = str.replace(/,[^,]+$/, ",new");
// or you can just use
// var res = str.replace(/[^,]+$/, "new");
document.write(res);
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化


或者你可以使用正则表达式 str.replace(/[^,]+$/, "new");

var str = "a,b,c,d,e,old";
var res = str.replace(/[^,]+$/, "new");
document.write(res);
Run Code Online (Sandbox Code Playgroud)


或者使用split(),用新字符串替换最后一个数组值,然后使用join()方法再次连接它

var str = "a,b,c,d,e,old";
var arr = str.split(',');
arr[arr.length - 1] = 'new';
var res = arr.join(',');
document.write(res);
Run Code Online (Sandbox Code Playgroud)