I have a string as follows :
var str = "a,b,c,a,e,f";
What I need is replace the last comma separated element by another.
ie, str = "a,b,c,a,e,anystring";
I have done it using split
method and adding it to make a new string. But it is not working as expected
What I done as follows :
var str = "a,b,c,d,e,f";
var arr = str.split(',');
var res = str.replace(arr[5], "z");
alert(res);
Is there any regex to help?
You can use replace()
with regex /,[^,]+$/
to match the last string
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);
Or using split()
, replace the last array value with new string and then join it again using join()
method
var str = "a,b,c,d,e,old"; var arr = str.split(','); arr[arr.length - 1] = 'new'; var res = arr.join(','); document.write(res);
You could just use a String.substring()
of 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'));
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.