Я хотел бы анализировать url-запрос с помощью regex.Анализ параметров запроса URL-адресов с использованием regex
Вещи я должен был рассмотреть следующие вопросы: 1) PARAMS может быть из строя 2) только некоторые PARAMS должны соответствовать
Учитывая строку запроса:?»Param1 = test1 & param2 = test2 & parm3 = test3 " Я хотел бы запустить javascript regex, чтобы проанализировать значение param1 и значение param3.
Регулярное выражение я придумал до сих пор:
/(?:[?&](?:param1=([^&]*)|param3=([^&]*)|[^&]*))+$/g
Это регулярное выражение, кажется, работает хорошо для меня в таких сайтах, как https://regex101.com/.
Однако, когда я запускаю JS-метод ниже, я всегда получаю undefined для $ 2, что и должно значить значение параметра param1. Любая помощь или предложение?
"?param1=test1¶m2=test2¶m3=test3".replace(
/(?:[?&](?:param1=([^&]*)|param3=([^&]*)|[^&]*))+$/g,
function ($0, $1, $2, $3) { return $0 + ' ' + $1 + ' ' + $2 + ' ' + $3; });
Это возвращает $ 2 как неопределенное и $ 3 как test3. Однако, если я исключаю param2 и param3 из строки запроса url, я успешно могу проанализировать param1 как $ 2. Немного смутился.
спасибо!
Добавить с меткой javascript – prasanth
Каков ваш ожидаемый результат замены? – Damon
Мне бы хотелось, чтобы $ 0 и $ 1 выводили 'test1' и 'test3', на самом деле это может быть ограничение javascript: http://stackoverflow.com/questions/3537878/how-to-capture-an-arbitrary-number-of -groups-in-javascript-regexp –