如何用字符串变量连接正则表达式?

时间:2014-05-12 15:22:39

标签: javascript regex

我有一个正则表达式如下:

var myVar = "some text";

var decimal = /^\s*(\+|-)?((\d+(\,\d+)?)|(\,\d+))\s*$/;

如何用myVar变量连接它是一个字符串?

我尝试过以下但没有工作:

var decimal = new RegExp("/^\s*(\+|-)?((\d+(\" + myVar + "\d+)?)|(\" + myVar + "\d+))\s*$/");

3 个答案:

答案 0 :(得分:2)

您不需要在/的开头和结尾添加new RegExp(...),并且应按照anubhava的提法转义\

var decimal = new RegExp("^\\s*(\\+|-)?((\\d+(" + myVar + "\\d+)?)|(" + myVar + "\\d+))\\s*$");

答案 1 :(得分:2)

只需进行连接练习即可:

var decimal = new RegExp("^(\\s*(\\+|-)?((\\d+(,\\d+)?)|(,\\d+))\\s*)" + myVar + "$");

尽管请注意myVar可以包含需要转义的特殊正则表达式元字符。

答案 2 :(得分:0)

您需要转义字符串内的反斜杠。

var decimal = new RegExp("/^\\s*(\\+|-)?((\\d+(\\,\\d+)?)|(\\,\\d+))\\s*$/" + myVar);