[英]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,因此使用g
或m
标志不会执行任何操作。
如果您只是想标记一个URL(即分别从其中获取不同部分),请尝试以下简单方法: https : //gist.github.com/jlong/2428561
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.