我有一个正则表达式如下:
var myVar = "some text";
var decimal = /^\s*(\+|-)?((\d+(\,\d+)?)|(\,\d+))\s*$/;
如何用myVar变量连接它是一个字符串?
我尝试过以下但没有工作:
var decimal = new RegExp("/^\s*(\+|-)?((\d+(\" + myVar + "\d+)?)|(\" + myVar + "\d+))\s*$/");
答案 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);