简体   繁体   中英

Replace last comma separated value by another using regex

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); 

正则表达式可视化


Or you can just use regex 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM