繁体   English   中英

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

[英]Fix Javascript Invalid regular expression: Invalid Group

我正在使用正则表达式来分隔url的元素:

http://domain.com/page/post#fragment?查询

/(?:([\w\-\+]+(?<!domain\.com))\/?)?(?:([\w\-\+]+(?<!domain\.com))\/?)?(?:#([\w\-\+]+))?(?:\?([\w\-\+]+))?$/

这是该比赛的结果:

$ 1 =页

$ 2 =发布

$ 3 =片段

$ 4 =查询

我收到此错误:

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

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

您可能可以对其进行调整以满足您的需求,它捕获了URL的大部分不同部分:

^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$

小提琴: http : //www.rexfiddle.net/m1ERMlZ

注意:这不适用于以换行符分隔的多个URL,因此使用gm标志不会执行任何操作。


如果您只是想标记一个URL(即分别从其中获取不同部分),请尝试以下简单方法: https : //gist.github.com/jlong​​/2428561

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM