URL И МАРШРУТИЗАЦИЯ

тест URLPatternнайдите несовпадающую часть

Один URL в строке, один шаблон для всех примеров. Выберите движок под полями ввода.

тест URLPattern

Шаблон

Проверяемые URL

URL и шаблоны обрабатываются в браузере. Запросы к введённым адресам не отправляются.

Результаты сопоставления

Введите хотя бы один URL для проверки.

Настройки сопоставления

URLPattern: * допускает любое значение, пустое поле — только пустой компонент. Детали показывают независимые группы даже при несовпадении всего URL.

База разрешает относительные кандидаты и строковые шаблоны. В режиме компонентов она не добавляет условий.

Лимиты: 512 единиц на шаблон, 200 URL, 2 048 на URL/базу, всего 131 072 единицы UTF-16; worker работает до 2 секунд.

Результаты устарели или вычисляются.

Тест URLPattern полезен, когда другой хост или завершающий слеш меняет результат для знакомого маршрута. Оставьте рядом подходящий адрес и контрпример, чтобы изменение одного условия сразу показывало границу совпадения.

Сопоставление URL с шаблонами и проверка маршрута могут охватывать разные части адреса. Проверка соответствия использует выбранную библиотеку напрямую. Совпадение не подтверждает существование ресурса или выбор обработчика сервером.

Зачем нужен тест URLPattern

Разделите общий и частный результат

Тест URLPattern показывает итог для всего адреса отдельно от независимой диагностики восьми компонентов. Хост может не совпасть, хотя путь захватил id. Частичная группа служит диагностике и не выдаётся за успешный общий результат exec.

Один шаблон связан с тремя строками адресов; в средней строке не совпал только один компонент.

Проверьте влияние хоста

Условие hostname исключает другой хост. Адаптер маршрутов читает только pathname, поэтому тот же путь на другом хосте может совпасть. Два таких адреса помогают увидеть, какая часть действительно участвует в проверке.

Два одинаковых списка: проверка полного URL исключает другой хост, а проверка пути принимает оба адреса.

Сначала выберите синтаксис

01

Пустое поле отличается от звёздочки

В режиме компонентов передаются все восемь полей. * допускает любое значение, пустое поле требует пустой компонент. Базовый URL разрешает относительные адреса, но не добавляет ограничения хоста к этому режиму.

02

Учитывайте версию маршрутов

path-to-regexp v8 использует синтаксис путей Express 5. Необязательные части задаются фигурными скобками, звёздочке нужно имя. Переключение движка сохраняет введённые строки и не переводит их в другую грамматику.

03

Дождитесь нового результата

Автопроверка запускается через 350 мс после последнего изменения. Если её отключить, используйте кнопку или Ctrl/Cmd + Enter. Любое изменение блокирует старый экспорт. Перед сохранением раскройте детали несовпавшей строки.

Компоненты и захваченные параметры

Зафиксированные версии

Тест URLPattern использует urlpattern-polyfill 10.1.0 и path-to-regexp 8.4.2. Версии, настройки и исходные данные входят в отчёт. Во всех браузерах работает одинаковый polyfill; нативная реализация браузера здесь не измеряется.

Структура групп сохраняется

Именованные группы URLPattern разделены по компонентам и не декодируются дополнительно. Отсутствующая необязательная группа записывается как null. Именованные звёздочки маршрутов обычно возвращают массивы, а при отключении декодирования — исходные строки.

Видно разрешённый адрес

Относительные кандидаты используют базовый URL. Отчёт сохраняет оригинал и нормализованный адрес, включая удаление стандартного порта и разрешение сегментов с точками. Изменение базы может поменять адрес ещё до сопоставления.

Ошибки остаются в отчёте

Некорректные URL и ошибки декодирования сохраняют номера строк; остальные кандидаты проверяются дальше. Ошибка компиляции останавливает весь запуск. На экране выводятся порции по 50 строк, но JSON содержит все строки и ошибки.

Что именно проверяется

Грамматики не взаимозаменяемы
URLPattern поддерживает :id? и ограничения вроде :id(\d+). Версия 8 использует фигурные скобки для необязательных частей и имена после звёздочки, например *path. Старый синтаксис маршрутов может вызвать ошибку компиляции.
Строка запроса сохраняет порядок
search не включает начальный ?, hash — начальный #. Параметры не сортируются и не сравниваются как множества. Адаптер проверяет только pathname; хост, запрос и фрагмент не участвуют.
Нормализация и декодирование различаются
Парсер URL нормализует хосты, стандартные порты и сегменты с точками. Захваченные значения URLPattern остаются закодированными. Некорректная процентная запись в параметре маршрута вызывает ошибку строки, если декодирование включено.
Без скрытой очистки примеров
Пустые строки пропускаются; дубликаты, пробелы и исходные номера сохраняются. Управляющие символы и некорректный Unicode отклоняются. Даже если парсер обработал пробелы по краям, оригинальная строка остаётся в отчёте.
Ограничения объёма и времени
На шаблон или компонент отведено 512 единиц UTF-16, на URL и базу — 2 048, суммарно — 131 072. Допускаются 200 непустых строк и 2 секунды работы worker. При превышении не возвращается частичный отчёт об успехе.
Без эмуляции приложения
HTTP-методы, middleware, порядок маршрутов и другие фреймворки не исполняются. Нет запросов к адресам, переписывания путей, импорта файлов, сохранения истории или ссылок с исходными данными.

Тест URLPattern: частые вопросы

Учитывается ли регистр?

По умолчанию да; его можно игнорировать настройкой. Хост уже нормализуется при разборе URL. Для проверки регистра пути сравните /users/42 и /USERS/42.

Как задать относительный путь?

Относительный кандидат разрешается с указанным базовым URL. Относительный строковый шаблон также использует базу. В режиме компонентов передаются восемь полей без автоматического наследования хоста из базы.

Завершающий слеш считается необязательным?

URLPattern не добавляет его автоматически: /users/:id не совпадает с /users/42/. Адаптер маршрутов по умолчанию допускает завершающий разделитель; это можно отключить отдельной настройкой.

Почему у некоторых компонентов есть группы с номерами?

Звёздочка создаёт анонимную группу, например 0. Здесь сохраняется структура движка. Захваченная пустая строка отличается от отсутствующей необязательной группы: последняя экспортируется как null.

Можно сравнивать параметры запроса как объект или массив?

Здесь URLPattern test проверяет строку search, а не равенство объектов или массивов. Порядок и повторяющиеся параметры могут влиять на результат. Чтобы полностью исключить запрос из условий, задайте search равным *.

Есть неожиданный результат маршрута?

Сравните пример и контрпример

Оставьте один ожидаемый успех и один ожидаемый отказ. Измените условие, проверьте детали обоих адресов и сохраните актуальный отчёт.