js 实现ReplaceAll

   原生js中没有replaceAll方法,只有replace。如果要将字符串替换,一般使用replace,但是replace只会替换找到的第一个原字符。这里结合自己的使用介绍一下JS实现replaceAll方法。

方法一、正则表达式替换(“-”“+”)

//替换所有减号 
var str = '2017-10-23';
//g表示执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
var result = str.replace(/-/g,'');
console.log(result);

结果:20171023
//替换所有加号
var str = '2017+10+23';
//这里+号需要用[+]表示
var result = str.replace(/[+]/g,'');
console.log(result);

结果:20171023
//替换所有加号
var str = '2017+10+23';
//这里+号需要用[+]表示,m表示执行多行匹配。
var result = str.replace(new RegExp("[+]","gm"),"Excel")
console.log(result);

结果:20171023

方法二、字符串分解替换

var str = '2017-10-23';
var result = str.split('-').join('');
console.log(result);

结果:20171023
var str = '2017+10+23';
var result = str.split('+').join('');
console.log(result);

结果:20171023

方法三、添加 Stirng对象replaceAll 原型

String.prototype.replaceAll = function(s1,s2){ 
return this.replace(new RegExp(s1,"gm"),s2); 
}
JavaScript中,有两个字符串方法可以用于替换字符串中的子串:`replace()`和`replaceAll()`。 1. `replace()`方法: `replace()`方法是字符串对象的方法,用于将指定的子串或正则表达式匹配的部分替换为新的字符串。它只会替换第一个匹配到的子串。 `replace()`方法的语法如下: ```javascript string.replace(searchValue, replaceValue) ``` 参数说明: - `searchValue`:要被替换的子串或正则表达式。 - `replaceValue`:用于替换的新字符串。 下面是一个示例用法: ```javascript const str = 'Hello, world!'; const newStr = str.replace('world', 'everyone'); console.log(newStr); // 输出: 'Hello, everyone!' ``` 在上面的示例中,`replace()`方法将字符串中的'world'替换为'everyone'。 2. `replaceAll()`方法: `replaceAll()`方法是字符串对象的方法,用于将所有匹配到的子串或正则表达式匹配的部分替换为新的字符串。它会替换所有匹配到的子串。 `replaceAll()`方法的语法如下: ```javascript string.replaceAll(searchValue, replaceValue) ``` 参数说明: - `searchValue`:要被替换的子串或正则表达式。 - `replaceValue`:用于替换的新字符串。 下面是一个示例用法: ```javascript const str = 'Hello, world!'; const newStr = str.replaceAll('o', 'e'); console.log(newStr); // 输出: 'Helle, werld!' ``` 在上面的示例中,`replaceAll()`方法将字符串中的所有'o'替换为'e'。 需要注意的是,`replace()`和`replaceAll()`方法都会返回一个新的字符串,并且原始字符串不会被修改。另外,`replace()`方法可以接受正则表达式作为`searchValue`参数,而`replaceAll()`方法在一些旧版本的JavaScript中可能不被支持,可以通过使用正则表达式和全局匹配来实现类似的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Coding13

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值