问题描述:
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'