JS 使用replace只替换第一个不会替换全部问题解决

问题描述:

var str="1,2,3";
str=str.replace(",","*");//'1*2,3'

使用replace()想将"1,2,3"所有里面所有的','替换为'*',只替换一次。

问题分析:

replace()在字符替换的情况下,只会替换一次。

问题解决:

1、使用replace()+正则替换

g代表匹配全部,t代表只匹配第一个

var str="1,2,3";
str=str.replace("/,/g","*");//'1*2*3'

注:使用正则替换,最好只替换字母、数字和汉字,替换特色字符会有问题比如:+?*。

2、使用split()+join()替换

先用split()分隔成数组,再用join()将其拼接起来。

这种方法的能处理大部分的字符。

var str="1,2,3";
str=str.split(",").join('*');//'1*2*3'

3、 使用replace()+RegExp替换

RegExp(",", "g")的第一个参数代表要替换的字符,第二个代表修饰符,g代表匹配全部,t代表只匹配一次。

var str="1,2,3";
str=str.replace(RegExp(",", "g"),"*");//'1*2*3'

版权声明:本文为qq_38974638原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。