JavaScript全部替换 - js replaceAll()

本文介绍了一种在JavaScript中实现字符串全局替换的方法,通过扩展String.prototype,利用正则表达式的全局匹配标志来完成对指定字符的所有实例进行替换的功能。示例展示了如何将字符串中的特定字符替换成另一个字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法 - 正确

/**
 * 字符串文字替换 - 全部替换 - 批量替换
 * 
 * 【思路1】正则匹配
 * var reg = new RegExp(search, "g")
 * str = String(str)
 * return str.replace(reg, replaceWith)
 * 当search中携带正则预留的特殊字符时,无报错,但是无法替换
 * 详细 https://cloud.tencent.com/developer/article/1651271
 * JS的正则转义暂无稳妥的方案,RegExp.escape()在firefox、safari中支持,但是chrome、edge不支持。
 * 参见 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/escape
 * 民间转义方法(MDN上提供的一个解决方案):return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); 无法保证完整性
 * 参见 https://juejin.cn/post/7416605082690043954
 * 
 * 【思路2】切割合并
 * string.split(search).join(replaceWith)
 */
function replace_all(str, search = '', replaceWith = '') {
    str = String(str)
    if (search === '') {
        return str
    } else {
        return str.split(search).join(replaceWith)
    }
}

方法 - 有问题,当被替换的字符中包含正则的特殊符号时,无效

// 有问题,当被替换的字符中包含正则的特殊符号时,无效
// 有问题,当被替换的字符中包含正则的特殊符号时,无效
// 有问题,当被替换的字符中包含正则的特殊符号时,无效

/* 把f全部换为e */
String.prototype.replaceAll=function(f,e){
    var reg=new RegExp(f,"g");
    return this.replace(reg,e); 
}

/* 使用方法 */
var str = '贪吃的吃货很会吃!';
var newstr = str.replaceAll('吃','玩');
alert(newstr); // 贪玩的玩货很会玩!

感谢大神:

js replace全部替换的方法 - DragonDean - 博客园在写前端代码的时候,我们有时希望替换掉一个字符串中的一部分,理所当然的想到了replace这个方法。但是在实践中发现javascript中的replace方法只替换字符串中第一次出现的目标,比如:vahttps://www.cnblogs.com/dragondean/p/javascript-replaceall.html

js全部替换

相关

String.prototype.replaceAll

js正则replace替换多个字符
js字符串replace替换多个
js replace正则匹配替换多个不同字符串的实现方法
js replace全部替换的方法
replace里的g表示全局替换,而每个关键词前面的\则为转义字符,在针对html类的标签替换的时候,是必不可少的。
js 全部替换
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rudon滨海渔村

花的越多,赚得越多...

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值