js字符串的replace()⽅法和实现replaceAll()⽅法
⼀、js中字符串的替换使⽤replace() ⽅法,但它只替换第⼀个匹配⼦串。如下例:
<script type="text/javascript">
var sourceString = "我是被替换的字符串,是被替换的哦";
var replaceString = place("替换", "replace");
alert(replaceString); // 我是被replace的字符串,是被替换的哦
</script>
可以看到替换后的replaceString的值为"我是被replace的字符串,是被替换的哦 ",replace(searchValue,replaceValue)⽅法替换的只是第⼀个匹配的字符串,那么如何实现替换全部匹配的字符串呢?——可以使⽤replace(searchRegexp,replaceValue)的正则表达式⽅式来实现。
<script type="text/javascript">
var sourceString = "我是被替换的字符串,是被替换的哦";
jsreplace函数var replaceString = place(/替换/gm, "replace"); //place(new RegExp("替换", "gm"), "replace");
alert(replaceString); // 我是被replace的字符串,是被replace的哦
</script>
⼆、添加 Stirng对象的原型⽅法:实现replaceAll()⽅法
<script type="text/javascript">
// 替换所有
placeAll = function (searchString, replaceString, ignoreCase) {
if (RegExp.prototype.isPrototypeOf(searchString)) {
place(searchString, replaceString);
} else {
place(new RegExp(searchString, (ignoreCase ? "gmi" : "gm")), replaceString);
}
}
var sourceString = "我是被替换的字符串,是被替换的哦,Is Replace or replace?";
var replaceString = placeAll("替换", "replace");
//replaceString = placeAll(/替换/gm, "replace");
//replaceString = placeAll(new RegExp("替换", "gm"), "replace");
//replaceString = placeAll("replace", "替换"); // 我是被替换的字符串,是被替换的哦,Is Replace or 替换?
//replaceString = placeAll("replace", "替换", true); // 我是被替换的字符串,是被替换的哦,Is 替换 or 替换?
console.log(replaceString);
alert(replaceString); // 我是被replace的字符串,是被replace的哦,Is Replace or replace?
</script>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论