js替换字符串

原帖:https://www.cnblogs.com/jasonlam/p/7070604.html

1. 替换第一个字符串:

string.replace("a","b");

2. 替换所有字符串:

string.replace(new RegExp(key,'g'),"b");

内容:

我要用 JS 替换一个多行文本的关键字

正常,没有变量的时候应该是这样:

把 a 替换成 b:

string.replace("a","b");

以上只能替换第一个匹配的,要全文匹配应该用正则表达式:

string.replace(/a/g,"b");

正则加个参数 g ,表示全文匹配。

但现在,我要替换的不是 a 这个字符了,而是从外面传进来的一个变量:

var key;

我可以这么写:

string.replace(key,"b");

这只能替换第一个匹配的,要全文匹配就遇到难题了:

string.replace(/key/g,"b");

这样写是不行的,变量 key 传不到正则里面去。。。头疼啊

于是我在网上找啊找。

我先找 replace 替换变量,有说用加号拼接正则的,好像也失败了。。。看得我晕晕乎乎的。

我无意中发现 java 有个 replaceAll() 方法,我想如果可以这样不就好了吗:

string.replaceAll(key,"b");

这样就不用正则了,变量就能进去了。

然后发现 JS 里没有 replaceAll() 这个方法。。

我靠,,然后我又查 JS 怎么能够实现 replaceAll 这个方法,网上各种自己写函数啊,,看得我也晕晕乎乎的。

后来我的思路又回到了怎样把变量传到 replace() 方法里面去。

哎~功夫不负有心人,看到一篇文章:

http://www.jb51.net/article/40269.htm

文章的最后,给出了 JS 里面正则表达式的另一个使用方法,那就是:

string.replace(new RegExp(key,'g'),"b");

这里,利用 JS 的 RegExp 对象,将 g 参数单拿了出来,同时,正则的内容可以用变量来代替了!!!!

干的漂亮!!!!

又简单,又实用!

这里就完成了用 replace() 方法对变量进行全文替换。运气不错

怎么样,是不是不用自己写 replaceAll() 了呢!哈哈

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容