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

Javascript 如何使用字符串变量连接正则表达式?,javascript,regex,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*$/"); 您不需要在新RegExp(…)的开头

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

var myVar = "some text";

var decimal = /^\s*(\+|-)?((\d+(\,\d+)?)|(\,\d+))\s*$/;
如何使用myVar变量(一个字符串)连接它

我尝试了以下方法,但没有成功:

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

您不需要在
新RegExp(…)
的开头和结尾添加
/
,而
\
应该转义,如anubhava所述:

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

您不需要在
新RegExp(…)
的开头和结尾添加
/
,而
\
应该转义,如anubhava所述:

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

仅通过连接练习,您就可以执行以下操作:

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

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

仅通过串联练习,您可以执行以下操作:

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

但是请记住,
myVar
也可以包含需要转义的特殊正则表达式元字符。

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

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

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

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

您希望生成的正则表达式与什么匹配?抱歉,我更新了所需的正则表达式。基本上,应该用myVar替换“,”。您基本上是在尝试创建一个模式,使其在一个区域设置中匹配
1,23
,在另一个区域设置中匹配
1.23
?我建议使用一些i18n库,比如or。您希望生成的正则表达式与之匹配的是什么?抱歉,我更新了所需的内容。基本上,应该用myVar替换“,”。您基本上是在尝试创建一个模式,使其在一个区域设置中匹配
1,23
,在另一个区域设置中匹配
1.23
?我建议使用一些i18n库,比如或。