正则表达式无效量词为^((?<! - \ /)\ / [A-Za-z0-9 _-] *)+ $ - >

时间:2011-10-24 15:04:59

标签: javascript regex

我在这个正则表达式上得到了一个无效的quanitifier JS错误。

^((?<!\/)\/[A-Za-z0-9_-]*)+$

我只是想尝试匹配任何路径,并确保它有一个前导斜杠......

/家
/家/约/
/首页/联系
...等等...

3 个答案:

答案 0 :(得分:4)

问题是(?<!...):JavaScript不支持lookbehinds。

我认为你无论如何都不需要它。

^(\/[A-Za-z0-9_-]+)+\/?$

也应该有效(取决于您的确切规则)。

答案 1 :(得分:1)

我刚刚测试了你的正则表达式,我似乎没有得到任何错误,虽然没有什么是匹配的(没有像Felix Kling所说的背后隐藏)。

但是我建议使用以下正则表达式:

^(?:\/[a-z0-9_-]+)+\/?$

答案 2 :(得分:1)

JavaScript正则表达式不支持lookbehind。但是你不需要它:

/^(?:\/[A-Za-z0-9_]+)+$/

应该这样做。

编辑 - 如果尾随斜杠是OK,那么:

/^(?:\/[A-Za-z0-9]+)+\/?$/