我有一个字符串如下:
var str = "a,b,c,a,e,f";
我需要的是将另一个逗号分隔的元素替换为另一个。
ie, str = "a,b,c,a,e,anystring";
我使用split
方法完成了它并添加它以创建一个新字符串。但它没有按预期工作
我做了如下:
var str = "a,b,c,d,e,f";
var arr = str.split(',');
var res = str.replace(arr[5], "z");
alert(res);
是否有正则表达式可供帮助?
答案 0 :(得分: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);

<小时/> 或者您可以使用正则表达式
str.replace(/[^,]+$/, "new");
var str = "a,b,c,d,e,old";
var res = str.replace(/[^,]+$/, "new");
document.write(res);
&#13;
或使用 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);
&#13;
答案 1 :(得分:2)
您可以使用String.substring()
String.lastIndexOf()
:
function replaceStartingAtLastComma(str, rep){
return str.substring(0, (str.lastIndexOf(',')+1))+rep;
}
console.log(replaceStartingAtLastComma('a,b,c,d,e,f', 'Now this is f'));