mon*_*lot 36 javascript string variables replace
如何使用变量从字符串中删除子字符串的所有实例?(要删除,我认为最好的方法是全局替换,没有,......对吗?)
如果我有这两个字符串,
myString = "This sentence is an example sentence."
oldWord = " sentence"
Run Code Online (Sandbox Code Playgroud)
然后这样的事情
myString.replace(oldWord, "");
Run Code Online (Sandbox Code Playgroud)
仅替换字符串中变量的第一个实例.
但是如果我像这样添加全局g myString.replace(/oldWord/g, "");
它不起作用,因为它认为oldWord,在这种情况下,是子字符串,而不是变量.如何使用变量执行此操作?
Der*_*會功夫 68
好吧,你可以用这个:
var reg = new RegExp(oldWord, "g");
myString.replace(reg, "");
Run Code Online (Sandbox Code Playgroud)
或者干脆:
myString.replace(new RegExp(oldWord, "g"), "");
Run Code Online (Sandbox Code Playgroud)
传递变量时,必须使用构造函数而不是文字语法.坚持文字字符串的文字语法,以避免混淆转义语法.
var oldWordRegEx = new RegExp(oldWord,'g');
myString.replace(oldWordRegEx,"");
Run Code Online (Sandbox Code Playgroud)
此处无需使用正则表达式:围绕要删除的子字符串的匹配项拆分字符串,然后将其余部分连接在一起:
myString.split(oldWord).join('')
Run Code Online (Sandbox Code Playgroud)
在 OP 的示例中:
myString.split(oldWord).join('')
Run Code Online (Sandbox Code Playgroud)