全局替换是否允许使用变量标识符?

时间:2014-07-28 09:01:40

标签: javascript

当变量传递给全局替换函数时,它似乎将其解析为字符串而不是变量。换句话说,这段代码并没有按照要求运作:

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并且做得不多。如果有人知道是否以及如何做到这一点,请提供答案。感谢。

2 个答案:

答案 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);

jsFiddle