修复Javascript无效的正则表达式:无效的组

Lei*_*tih 1 javascript regex url match

我使用正则表达式来分隔网址的元素:

http://domain.com/page/post#fragment?query

/(?:([\w\-\+]+(?<!domain\.com))\/?)?(?:([\w\-\+]+(?<!domain\.com))\/?)?(?:#([\w\-\+]+))?(?:\?([\w\-\+]+))?$/
Run Code Online (Sandbox Code Playgroud)

这将是这场比赛的结果:

$ 1 =页面

2美元=邮寄

$ 3 =片段

$ 4 =查询

我收到此错误:

Invalid regular expression: /(?:([\w\-\+]+(?<!localhost))\/?)?(?:([\w\-\+]+(?<!localhost))\/?)?(?:#([\w\-\+]+))?(?:\?([\w\-\+]+))?$/: Invalid group
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 6

这部分:(?<!domain\.com))是因为Javascript不支持的问题lookbehind.

  • 正确(+1).要在JS中模拟它,请阅读:http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript (2认同)