Важно, чтобы URL кодировал параметры запроса перед отправкой запроса.Это помогает избежать проблем с символами, которые имеют особое значение (?
, =
, &
, #
и т. Д.)
Таким образом, вместо отправки буквенных символов амперсанда &
в регулярном выражении, вместо этого он должен быть закодирован как URL %26
.
/austin/query.html?dept=([^%26]*)&group=([^%26]*)
Когда этот код анализируется модулем querystring
, он автоматически преобразуется обратно в символ амперсанда.
const querystring = require('querystring');
const URL = require('url');
function parseQueryParamsFromUrlPath(urlPath) {
const { query } = URL.parse(urlPath);
return querystring.parse(query);
}
parseQueryParamsFromUrlPath('/austin/query.html?dept=([^%26]*)&group=([^%26]*)');
// Output: { dept: '([^&]*)', group: '([^&]*)' }