js 字符串 replace replaceAll

  • js中字符串的替换
var str = "男的女的老的少的";
alert(str.replace('的',''));

可以看到替换后的str的值为"男女的老的少的",replace(str1,str2)方法替换的只是第一个匹配的字符串,那么如何实现替换全部匹配的字符串呢?
在java语言中有给出的replaceAll方法能够实现这样的功能,但很遗憾javascript没有提供这样的方法,但replace方法要比我们想象的强大,实际上通过它我们可以实现我们的需求的。

给出replace的语法定义

stringObj.replace(rgExp, replaceText)

其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串。

第一个例子是参数rgExp 为字符串的情况,下面我们用正则表达式实现全部替换的功能

var str = "男的女的老的少的";
alert(str.replace(new RegExp(/(的)/g),''));

以上实现了字符串的全部替换,但这种正则表达式是有局限的,匹配的是一些特定的字符串,如何匹配动态的字符串呢?

var replaceStr = "的";
alert(str.replace(new RegExp(replaceStr,'gm'),''));

这样我们就完成了匹配字符串的动态赋值。

另外还有其他的方法实现全部替换

alert(str.split(replaceStr).join(''));

网上查到一种方法,感觉不可取

function ReplaceAll(str, sptr, sptr1){
                    while (str.indexOf(sptr) >= 0){
                       str = str.replace(sptr, sptr1);
                    }
                    return str;
             }

调用这个方法执行以下代码的话,会陷入死循环的

var ss = 'abc';
alert(ReplaceAll(ss,'b','bc'));

 

 

转载于:https://www.cnblogs.com/shuaisam/archive/2012/04/12/2442741.html

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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值