js字符串replacereplaceAll
js中字符串的替换
var str = "男的⼥的⽼的少的";
place('的',''));
可以看到替换后的str的值为"男⼥的⽼的少的",replace(str1,str2)⽅法替换的只是第⼀个匹配的字符串,那么如何实现替换全部匹配的字符串呢?replaceall()
在java语⾔中有给出的replaceAll⽅法能够实现这样的功能,但很遗憾javascript没有提供这样的⽅法,但replace⽅法要⽐我们想象的强⼤,实际上通过它我们可以实现我们的需求的。
给出replace的语法定义
其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),replaceText是替代查到的字符串。
第⼀个例⼦是参数rgExp 为字符串的情况,下⾯我们⽤正则表达式实现全部替换的功能
var str = "男的⼥的⽼的少的";
place(new RegExp(/(的)/g),''));
以上实现了字符串的全部替换,但这种正则表达式是有局限的,匹配的是⼀些特定的字符串,如何匹配动态的字符串呢?
var replaceStr = "的";
place(new RegExp(replaceStr,'gm'),''));
这样我们就完成了匹配字符串的动态赋值。
另外还有其他的⽅法实现全部替换
alert(str.split(replaceStr).join(''));
⽹上查到⼀种⽅法,感觉不可取
function ReplaceAll(str, sptr, sptr1){
while (str.indexOf(sptr) >= 0){
str = place(sptr, sptr1);
}
return str;
}
调⽤这个⽅法执⾏以下代码的话,会陷⼊死循环的
var ss = 'abc';
alert(ReplaceAll(ss,'b','bc'));
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论