javascript regexp不允许我的表达

时间:2014-10-02 22:44:22

标签: javascript regex

我想使用javascript regexp来测试我的字符串是否与正则表达式匹配。但是,我正在尝试使用的正则表达式会导致我的javascript中断。

我知道我通常可以执行以下操作:

/e/.test("blah")

但是当我尝试使用我的表达时,我的浏览器barfs:

/(?<=^| )\d+(\.\d+)?(?=$| )|(?<=^| )\.\d+(?=$| )/.test("1.23")

我错过了什么?

1 个答案:

答案 0 :(得分:2)

Javascript不支持Negative or Positive Lookbehind断言。因此,您的浏览器应该为无效的正则表达式抛出错误:(无效组),因为正面看待(?<=^| ) ...

我首先使用字符串^的开头和字符串$锚点的结尾。

/^\d+(?:\.\d+)?$/.test("1.23")

如果你真的想断言字符串/空格的开头或字符串/空白位置的结尾,你可以使用捕获组而不是环绕声断言来编译它们,因为你只使用了测试方法。

/(^| ) PATTERN ($| )/