我正在使用从 regexlib 获得的正则表达式模式来验证相对 url。在他们的网站上,您可以测试该模式以确保它符合您的需求。一切都在他们的网站上运行良好,只要我使用我的模式,我就会收到错误消息:
字符类中的范围无效
我知道这个错误通常意味着连字符被错误地用于表示范围并且没有正确转义。但在这种情况下,因为它可以在他们的网站上运行,我很困惑为什么它不能在我的网站上运行。
var urlRegex = new RegExp('^(?:(?:\.\./)|/)?(?:\w(?:[\w`~!$=;\-\+\.\^\(\)\|\{\}\[\]]|(?:%\d\d))*\w?)?(?:/\w(?:[\w`~!$=;\-\+\.\^\(\)\|\{\}\[\]]|(?:%\d\d))*\w?)*(?:\?[^#]+)?(?:#[a-z0-9]\w*)?$', 'g');
注意:
如果您要从他们的网站(使用上面的链接)测试正则表达式,请务必将下拉Regex Engine
菜单更改为.Client-side Engine
Engine
Javascript