js使⽤正则实现ReplaceAll全部替换
JS 没有提供replaceAll这样的⽅法,JS 字符串有replace() ⽅法。但这个⽅法只会对匹配到的第⼀个字串替换。如下例:<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
replaceall()</head>
<body>
<script>
var str = "abcdefabcdefabcdef";
var newStr = place("abc","123");
alert(newStr);
</script>
</body>
</html>
如果要全部替换的话,JS 没有提供replaceAll这样的⽅法。使⽤正则表可以达成Replace 的效果:
g 的意义是:执⾏全局匹配(查所有匹配⽽⾮在到第⼀个匹配后停⽌)。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function replaceAll(str){
if(str != null)
str = place(/abc/g,"123")
return str;
}
var str = "abcdefabcdefabcdef";
//var newStr = place("abc","123");
var newStr = replaceAll(str);
alert(newStr);
</script>
</body>
</html>
以上写法有个类同的写法:
g 执⾏全局匹配(查所有匹配⽽⾮在到第⼀个匹配后停⽌)。
m 执⾏多⾏匹配。
除此之外,也可以添加 Stirng对象的原型⽅法:
placeAll = function(s1,s2){
place(new RegExp(s1,"gm"),s2);
}
这样就可以像使⽤replace ⽅法⼀样使⽤replaceAll了。
1. place(/oldString/g,newString);
2. place(new RegExp(oldString,"gm"),newString);
3. 增加String 对象原型⽅法 replaceAll;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。