Javascript RegExp测试失败

mic*_*l_w 1 javascript regex

我有这个正则表达式的问题:

(\[|\])[0-9]+,([0-9]+(\[|\])|inf\])\s?.*
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化

Debuggex演示

当我尝试做代码时:

var rangeRegex = new RegExp("(\[|\])[0-9]+,([0-9]+(\[|\])|inf\])\s?.*");
console.log(rangeRegex.test("]1,inf] Test Expression"));
Run Code Online (Sandbox Code Playgroud)

我总是得到false.为什么?

Jer*_*rry 9

使用RegExp构造时,需要使用反斜杠双重转义:

var rangeRegex = new RegExp("(\\[|\\])[0-9]+,([0-9]+(\\[|\\])|inf\\])\\s?.*");
Run Code Online (Sandbox Code Playgroud)

或使用文字::

var rangeRegex = /(\[|\])[0-9]+,([0-9]+(\[|\])|inf\])\s?.*/;
Run Code Online (Sandbox Code Playgroud)