String的replace方法大多数语言都有字符串类型,字符串类型基本都有replace方法。今天来说说javascript的replace方法conststr='abcdefjabcd'constnewStr=str.replace('a','p')console.log(newStr)//pbcdefjabcd今天的分享到此结束。恭喜你,你学会了javascript字符串替换的使用。。。可能有童鞋会问,我想把a全部替换掉??,你还没替换呢。哈哈,不全部换掉就对了。如果全部换掉,就得有童鞋问我只想换一个,其他的不管。所以,饭要一口一口地吃,代码也得一行行码。全部替换replace的第一个参数可以直接传一个正则表达式,加上修饰符作为全局搜索,这样就可以替换所有的字符串;而ES2021新的apireplaceAll也可以用来全局替换conststr='abcdefjabcd'constnewStr=str.replace(/a/g,'p')//用正则表达式替换全局字符console.log(newStr)//pbcdefjpbcdconststrAll=str.replaceAll('a',p)//用新的api字符替换全局字符console.log(strAll)//pbcdefjpbcd进阶当然没那么简单,我不是很多童鞋在水文不知道replace方法的第二个参数可以传一个回调函数conststr='abcdefjabcd'constnewStr=str.replace('a',(a,b,c)=>{console.log(a,b,c)//a0abcdefjabcdreturn'p'})//用正则表达式替换全局字符console.log(newStr)//从pbcdefjabcd可以看出,回调函数的返回值就是使用的值更换。回调函数的参数是:第一个参数是匹配字符,第二个参数是匹配索引,第三个参数都是字符串然后我们用正则表达式conststr='abcdefjabcd'constnewStr=str.replace(/a/g,(a,b,c)=>{console.log(a,b,c)//a0abcdefjabcd//a7abcdefjabcdreturn'p'})//使用正则表达式替换全局charactersconsole.log(newStr)//pbcdefjpbcd从pbcdefjpbcd可以看出,在全局匹配正则表达式的时候回调函数会被执行多次,这是正常的。当然,多个全局匹配要执行多次。可以理解用更复杂的正则来体现回调函数的大用处conststr='我叫<%name>,今年<%age>岁,来自<%site>,haha'constuser={name:'张三',age:32,site:'山东'}constnewStr=str.replace(/<%(\w+)>/g,(a,b,c,d)=>{console.log(a,b,c,d)//<%name>name2我叫<%name>,今年<%age>岁,来自<%site>,哈哈//<%age>12岁我叫<%name>,今年<%age>岁,来自<%site>,哈哈//<%site>site22我叫<%name>,我今年<%age>岁,来自<%site>,哈哈returnuser[b]})console.log(newStr)//我叫张三,今年32岁老了,我来自山东。哈哈,这个有点像,是不是有点像字符串模板?童鞋们可能看到回调函数多了一个参数,是的,你没有看错,确实多了一个参数。这个参数是正则括号里面的匹配值,所以得出回调函数的参数1。匹配值2+。匹配正则括号的值可以是多个-2。倒数第二个参数,匹配值为全字符String索引-1。firstlastparameter,fullstring这是javascript字符串替换的常用用法。如何使用取决于业务需求
