我要用 JS 替换一个多行文本的关键字,正常,没有变量的时候应该是这样:把 a 替换成 b:

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

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

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

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

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

对于java、php都写的程序员来讲,我直接就用:

string.replace(key,"b"); 这只能替换第一个匹配的,要全文匹配就遇到难题了:string.replace(/key/g,"b");这样写是不行的,变量 key 传不到正则里面去。。。头疼

于是我在网上找啊找。给出了 JS 里面正则表达式的另一个使用方法,那就是:

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

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