Javascript RegExp测试失败

时间:2014-03-19 14:12:27

标签: javascript regex

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

(\[|\])[0-9]+,([0-9]+(\[|\])|inf\])\s?.*

Regular expression visualization

Debuggex Demo

当我尝试编写代码时:

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

我总是得到false。为什么呢?

1 个答案:

答案 0 :(得分:8)

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

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

或使用文字::

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