当变量传递给全局替换函数时,它似乎将其解析为字符串而不是变量。换句话说,这段代码并没有按照要求运作:
var s = "stack overflow";
var t = "o";
var r = s.replace(/t/gi,"");
//returns: sack overflow
//when should return: stack verflw
这会根据需要替换t
而不是o
。我注意到正则表达式中的一些例子可能对此太重了,并且认为这可能是一个简单的修复。我已经尝试\/t\/gi
并且做得不多。如果有人知道是否以及如何做到这一点,请提供答案。感谢。
答案 0 :(得分:1)
您应该使用新的RegExp()方法:
var s = "stack overflow";
var t = "o";
var r = new RegExp(t,'gi');
s.replace(r,'');
答案 1 :(得分:1)
In" / t"这是指一种模式,它有一些字母而不是对象或变量。这应该是适当的方式,
var s = "stack overflow";
var t = new RegExp("o", "g");
var r = s.replace(t,"");
alert(r);