Я использую шаблон регулярного выражения, который я получил из regexlib для проверки относительных URL-адресов. На их сайте вы можете test шаблон, чтобы убедиться, что он соответствует вашим потребностям. Все отлично работает на своем сайте, как только я использую шаблон в шахте я получаю сообщение об ошибке:Javascript regex недопустимый диапазон в классе символов
Недопустимый диапазон в классе символов
Я знаю, что эта ошибка обычно означает, что дефис ошибочно используется для представления диапазона и не экранируется должным образом. Но в этом случае, поскольку он работает на их сайте, я смущен, почему он не работает на моем.
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
.
Я перенес ее в конце концов в обоих классах символов, но теперь я получаю 'Invalid quantifier' – bflemi3
не мог я также удвоит избежать дефис, т.е. (' \\ -') вместо того, чтобы переместить его до конца? – bflemi3
@ bflemi3 да, действительно, вы можете сбежать от него. Посмотрите ссылку, указанную в анде – Anirudha