将变量插入正则表达式(JavaScript)不起作用

时间:2014-02-03 23:52:46

标签: javascript regex

这是我的代码:

var newLT = 'locTable'+(l+locations);
var findLT = 'locTable'+l;
var regex = new RegExp("/\b" + findLT + "\b/g");
locOrig = locOrig.replace(regex, newLT);

我正在尝试用newLT变量替换'locTable(#number here)'的所有实例。

因此,例如,如果这是一个字符串<input id="locTable3_0">,理想情况下我可以用newLT中的值替换存储在findLT中的'locTable3'部分。

关于我做错的任何提示?

编辑:为清楚起见:

说我有字符串<input id="locTable3_0">

变量newLT等于locTable4

变量findLT等于locTable3

我想要一个找到locTable3的正则表达式并用locTable4替换它,这样我的结果字符串就是<input id="locTable4_0">

2 个答案:

答案 0 :(得分:0)

更新:我认为我现在是上帝

var regex = /locTable\d/;
var newString = 'something_else_3'
var string = "locTable3_0";
var result = string.replace(regex1, newString);

这将导致something_else_3_0

答案 1 :(得分:0)

  • /.../ xyz是简短的符号,在这里不起作用

new RegExp("/\b" + findLT + "\b/g"); =&gt; new RegExp("\b" + findLT + "\b", "g");

  • 您正在将字符串传递给RegExp构造函数,因此您必须两次转义特殊字符:

new RegExp("\b" + findLT + "\b", "g"); =&gt; new RegExp("\\b" + findLT + "\\b", "g");