当前位置:首页 > JavaScript

js replaceall实现

2026-02-01 16:31:41JavaScript

在 JavaScript 中实现 replaceAll

JavaScript 的 String.prototype.replaceAll() 方法用于替换字符串中所有匹配的子串。以下是几种实现方式:

使用原生 replaceAll 方法(ES2021+)

现代浏览器和 Node.js(12+)支持原生 replaceAll

js replaceall实现

const str = "Hello World, World!";
const newStr = str.replaceAll("World", "JavaScript");
console.log(newStr); // "Hello JavaScript, JavaScript!"

使用正则表达式全局替换

通过正则表达式配合 g 标志实现全局替换:

const str = "Hello World, World!";
const newStr = str.replace(/World/g, "JavaScript");
console.log(newStr); // "Hello JavaScript, JavaScript!"

手动实现 replaceAll(兼容旧环境)

若需兼容不支持 replaceAll 的环境,可手动实现:

js replaceall实现

function replaceAll(str, search, replacement) {
    return str.split(search).join(replacement);
}

const str = "Hello World, World!";
const newStr = replaceAll(str, "World", "JavaScript");
console.log(newStr); // "Hello JavaScript, JavaScript!"

注意事项

  • search 参数是字符串,需处理特殊字符(如正则元字符)时,需手动转义:

    function escapeRegExp(string) {
        return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
    }
    
    const str = "Hello. World. World!";
    const newStr = str.replace(new RegExp(escapeRegExp("."), 'g'), "!");
    console.log(newStr); // "Hello! World! World!"
  • 空字符串替换时,replaceAll 会在每个字符间插入替换内容:

    console.log("abc".replaceAll("", "x")); // "xaxbxcx"

以上方法覆盖了不同场景下的字符串全局替换需求。

标签: jsreplaceall
分享给朋友:

相关文章

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…