如何使用变量从字符串中删除子字符串的所有实例?(要删除,我认为最好的方法是全局替换,什么都不做……对吧?)
如果我有这两个字符串,
myString = "This sentence is an example sentence."
oldWord = " sentence"然后是这样的东西
myString.replace(oldWord, "");仅替换字符串中变量的第一个实例。
但如果我像这样添加全局g,它就不起作用了,因为它认为oldWord,在本例中,是子字符串,而不是变量。我如何使用变量来实现这一点?
发布于 2012-04-13 14:17:25
你可以使用这个::
var reg = new RegExp(oldWord, "g");
myString.replace(reg, "");或简称:
myString.replace(new RegExp(oldWord, "g"), "");发布于 2012-04-13 14:19:36
在传递变量时,必须使用构造函数而不是文字语法。坚持使用文字字符串的文字语法,以避免混淆转义语法。
var oldWordRegEx = new RegExp(oldWord,'g');
myString.replace(oldWordRegEx,"");发布于 2017-01-24 04:57:38
这里不需要使用正则表达式:在要删除的子字符串的匹配项周围拆分字符串,然后将其余部分连接在一起:
myString.split(oldWord).join('')在OP的示例中:
var myString = "This sentence is an example sentence.";
var oldWord = " sentence";
console.log(myString.split(oldWord).join(''));
https://stackoverflow.com/questions/10136097
复制相似问题