Я работаю над регулярным выражением JavaScript, чтобы проверить правильность форматирования URL.Моя текущая итерация:
^(?!([^\?\s]*\?[^\?\s]*?as_asd=[^\?\s]*-_-[^\?\s]*-_-[^\?\s]*(-_-)?[^\?\s]*)).*$
С тестовой строкой:
https://www.asdf.com/?as_asd=asdf-_-asdf-_-asdf-_-asdf
Я обертываю все в отрицательный прогноз, чтобы предотвратить сопоставление, если URL-адрес не нарушает формат.Все работает как положено до второй -_-
.Я ожидаю, что [^\?\s]*
должен предотвращать ввод пробела или знака вопроса, не вызывая совпадения, но добавление после второго -_-
или дополнительного (-_-)?
не вызывает совпадения.
Я проверил это на нескольких отладчиках регулярных выражений, но все еще не могу понять это.Что я недопонимаю?Спасибо!