JS中实现replaceAll的方法(实例代码)

 更新时间:2023年06月14日 01:04:12   投稿:jingxian  
本文是对JS中实现replaceAll的方法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助

我们在Java中可以使用replaceAll()方法对字符串进行批量替换,但在JS中replaceAll()方法是undefined,JS中只存在replace()方法,因此我们可以自己封装JS中replaceAll()方法供我们便捷使用。

一、使用replace()方法进行替换

定义一个字符串:

var str = "hello world";

使用replace()方法将字符串中的字母"l"替换成"i",原始做法:

 console.log(str.replace("l","i"));

输出:

“heilo world”

需要执行三次,非常不方便;

二、使用replaceAll()方法替换

封装replaceAll()方法:

String.prototype.replaceAll = function(s1, s2) {
    return this.replace(new RegExp(s1, "gm"), s2);
}

定义一个字符串:

var str = "hello world";

使用replaceAll()方法进行批量替换:

console.log(str.replaceAll("l", "i"));

输出:

“heiio worid”

只需要执行一次,就完成了全部替换需求。

补充

第一次发现JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符.
而str.replace(/\-/g,"!")则可以全部替换掉匹配的字符(g为全局标志)。

replace()

The replace() method returns the string that results when you replace text matching its first argument
(a regular expression) with the text of the second argument (a string).
If the g (global) flag is not set in the regular expression declaration, this method replaces only the first
occurrence of the pattern. For example,

var s = "Hello. Regexps are fun.";s = s.replace(/\./, "!"); // replace first period with an exclamation pointalert(s);

produces the string “Hello! Regexps are fun.” Including the g flag will cause the interpreter to
perform a global replace, finding and replacing every matching substring. For example,

var s = "Hello. Regexps are fun.";s = s.replace(/\./g, "!"); // replace all periods with exclamation pointsalert(s);

yields this result: “Hello! Regexps are fun!”

所以可以用以下几种方式.:

string.replace(/reallyDo/g, replaceWith);
string.replace(new RegExp(reallyDo, 'g'), replaceWith);

string:字符串表达式包含要替代的子字符串。
reallyDo:被搜索的子字符串。
replaceWith:用于替换的子字符串。

<script type="text/javascript"> 
String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { 
    if (!RegExp.prototype.isPrototypeOf(reallyDo)) { 
        return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith); 
    } else { 
        return this.replace(reallyDo, replaceWith); 
    } 
} 
</script> 

到此这篇关于JS中实现replaceAll的方法(实例代码)的文章就介绍到这了,更多相关JS replaceAll方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript判断是否为数字的多种方法小结

    JavaScript判断是否为数字的多种方法小结

    这篇文章主要介绍了JavaScript判断是否为数字的多种方法小结,本文给大家分享三种方法,结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • 浅谈addEventListener和attachEvent的区别

    浅谈addEventListener和attachEvent的区别

    下面小编就为大家带来一篇浅谈addEventListener和attachEvent的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • javascript中的缓动效果实现程序

    javascript中的缓动效果实现程序

    javascript中的缓动效果可以应用于很多地方,比如距离位移上的变化:图片的滚动、焦点图的轮转切换,透明度上的变化:渐隐渐现。凡是存在运动的状态都适用,下面以最基本的块在容器内从左到右滑动为例,讲下几种不同的缓动处理方式
    2012-12-12
  • JS实现一个秒表计时器

    JS实现一个秒表计时器

    这篇文章主要为大家详细介绍了JS实现一个秒表计时器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • JS实现从连接中获取youtube的key实例

    JS实现从连接中获取youtube的key实例

    这篇文章主要介绍了JS实现从连接中获取youtube的key的方法,涉及javascript字符串操作的相关技巧,需要的朋友可以参考下
    2015-07-07
  • JavaScript适配器模式的应用详解

    JavaScript适配器模式的应用详解

    这篇文章主要介绍了理解JavaScript中的适配器模式,适配器模式即Adapter Pattern,是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,下文更多相关介绍需要的小伙伴可以参考一下
    2022-08-08
  • JavaScript数组去重的几种方法

    JavaScript数组去重的几种方法

    这篇文章主要给大家介绍了关于JavaScript数组去重的几种方法,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • 关于 文本框默认值 的操作js代码

    关于 文本框默认值 的操作js代码

    搜索框,文本框,文本域,文本区域 可能都要有个默认值
    2012-01-01
  • 把字符串按照特定的字母顺序进行排序的js代码

    把字符串按照特定的字母顺序进行排序的js代码

    把字符串按照特定的字母顺序进行排序,下面有个不错的示例,大家可以参考下
    2014-01-01

最新评论