js实现replaceAll方法

js实现replaceAll方法js本来有replace方法,请看w3school的说明:replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。语法:stringObject.replace(regexp/substr,replacement)第一个参数为一个字符串或者一个正则表达式,第二个参数为一个字符串或者一个用于生成字符串的函数。注意重点:如果regexp…

大家好,又见面了,我是你们的朋友全栈君。

js本来有replace方法,请看w3school的说明

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

语法:

stringObject.replace(regexp/substr,replacement)

第一个参数为一个字符串或者一个正则表达式,第二个参数为一个字符串或者一个用于生成字符串的函数。
注意重点:

如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

实例:

var str = "dogdogdog";
var str2 = str.replace("dog","cat");
console.log(str2);

这里仅替换第一个dog字符串,输出为catdogdog


js中是没有replaceAll方法的,那么如何实现替换所有匹配的字符串呢,即在js中实现replaceAll方法:

1. 使用具有全局标志g的正则表达式

var str = "dogdogdog";
var str2 = str.replace(/dog/g,"cat");
console.log(str2);

实现替换全部匹配字符串,输出结果为:catcatcat

2. 使用另一种具有全局标志g的正则表达式

var str = "dogdogdog";
var str2 = str.replace(new RegExp("dog","gm"),"cat");
console.log(str2);

输出结果同上例。这里g表示执行全局匹配,m表示执行多次匹配。

3. 给string对象添加原型方法replaceAll()

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

这样就可以像使用replace方法一样使用replaceAll方法:

var str = "dogdogdog";
var str2 = str.replaceAll("dog", "cat");
console.log(str2);

输出结果同上例。

4. 使用先split,再join的方法

评论区@默默之分享的这个方法太赞了,拉到正文里以免有人不看评论,感谢@默默之分享。

var str = "dogdogdog";
var str2 = str.split("dog").join("cat")
console.log(str2);

输出结果同上例。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163384.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月23日 下午7:16
下一篇 2022年7月23日 下午7:16


相关推荐

  • 软件测试方法和技术有哪些?

    软件测试方法和技术有哪些?软件测试方法和技术有哪些 包括软件测试基础 软件测试方法 软件测试流程和规范 单元测试与集成测试 系统测试 验收测试 软件本地化测试 测试自动化及其框架 白盒测试和黑盒测试等 软件测试方法技术 软件测试方法 一 等价类测试方法的具体操作 1 测试用例的基本要素 用例编号 测试目的 用例描述 预期结果 2 两位整数加法计算器的基本需求 第一个数和第二个数只能输入 99 到 99 之间的整数 对于输入的小于 99 的或大于 99 的数据 程序应给出明确提示 对于输入的小数 字符等非法数据 程序应给出明确

    2026年3月17日
    2
  • 奇思妙想CSS之“故障艺术”

    奇思妙想CSS之“故障艺术”什么是故障艺术顾名思义 Glitchart 就是 故障艺术 这个词的意思就是 失灵 短时脉冲波干扰 可以理解成一种自动或人为的 bug 但是 Glitchart 不一定是只限制于数码环境中的 在 analogart 里出现的机械 或人为干扰产生的故障都可以被归为 故障艺术 但重要的一点是 这不止是一种故障的呈现和表现 还应该是一种基于 故障 的审美创作 所以 Glitchart 也可以是看做是 美化故障 或者通过 故障 完成审美活动的创作手段 身边的故障艺术 抖音 LOGO 抖音的 logo 就是一种

    2026年3月19日
    3
  • RabbitMQ入门篇[通俗易懂]

    文章目录前言MQ的基本概念MQ的优势MQ的劣势常见的MQ产品RabbitMQRabbitMQ简介RabbitMQ中的相关概念:RabbitMQ工作模式Workqueues工作队列模式Pub/Sub订阅模式Routing路由模式Topics通配符模式工作模式总结消息确认生产者前言记录RabbitMQMQ的基本概念MQ全称MessageQueue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信MQ的优势应用解耦提高系统容错性和可维

    2022年4月8日
    60
  • 如何用豆包生成场景描述

    如何用豆包生成场景描述

    2026年3月12日
    2
  • NLTK使用汇总_bom用量计算公式

    NLTK使用汇总_bom用量计算公式0.如何离线安装NLTK1.LookupError:Resourcenotfound.2.分句、分词和停用词3.词性标注和词形还原4.分句5.N-gram

    2025年7月21日
    6
  • 数据结构知识点汇总

    数据结构知识点汇总1 用链表表示线性表的优点是 便于插入和删除操作 2 单链表中 增加头结点的目的是 方便运算的实现 3 栈和队列的共同特点是 只允许在端点处插入和删除元素 4 栈通常采用的两种存储结构是 线性存储结构和链表存储结构 5 队列具有 先进先出 的特征 栈具有 后进先出 的特征 6 链表 插入和删除不需要移动元素 但是无法随机访问任一元素 7 循环链表的主要优点是 从表中任一结点

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号