js实现replaceAll⽅法
js本来有replace⽅法,请看w3school的说明:
replace() ⽅法⽤于在字符串中⽤⼀些字符替换另⼀些字符,或替换⼀个与正则表达式匹配的⼦串。
语法:
place(regexp/substr,replacement)
第⼀个参数为⼀个字符串或者⼀个正则表达式,第⼆个参数为⼀个字符串或者⼀个⽤于⽣成字符串的函数。注意重点:
如果 regexp 具有全局标志 g,那么 replace() ⽅法将替换所有匹配的⼦串。否则,它只替换第⼀个匹配⼦串。实例:
var str = "dogdogdog";
var str2 = place("dog","cat");
console.log(str2);
这⾥仅替换第⼀个dog字符串,输出为:catdogdog。
js中是没有replaceAll⽅法的,那么如何实现替换所有匹配的字符串呢,即在js中实现replaceAll⽅法:
1. 使⽤具有全局标志g的正则表达式
var str = "dogdogdog";
var str2 = place(/dog/g,"cat");
console.log(str2);
实现替换全部匹配字符串,输出结果为:catcatcat。
2. 使⽤另⼀种具有全局标志g的正则表达式的定义⽅法
var str = "dogdogdog";
var str2 = place(new RegExp("dog","gm"),"cat");
console.log(str2);
replaceall()
输出结果同上例。这⾥g表⽰执⾏全局匹配,m表⽰执⾏多次匹配。
3. 给string对象添加原型⽅法replaceAll()
placeAll = function(s1, s2) {
place(new RegExp(s1, "gm"), s2);
}
这样就可以像使⽤replace⽅法⼀样使⽤replaceAll⽅法:
var str = "dogdogdog";
var str2 = placeAll("dog", "cat");
console.log(str2);
输出结果同上例。
个⼈推荐使⽤第3种⽅法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论