Как получить регулярное выражение из ввода параметров запроса, где разделитель равен «&» и даже регулярное выражение содержит «&»? - PullRequest
0 голосов
/ 26 мая 2018

у меня есть сценарий, в котором я получу входные данные в виде пути и параметра запроса, а вместо значения получу регулярное выражение.

входное выражение регулярного выражения содержит &, который является разделителем в параметре запроса.

`Input :` '/austin/query.html?dept=([^&]*)&group=([^&]*)'

я хочу получить это регулярное выражение ([^&]*) из параметра запроса динамически.

Любая идея или предложения могут быть глупыми / простой вопрос, пожалуйста, помогите?

1 Ответ

0 голосов
/ 27 мая 2018

Важно, чтобы 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: '([^&]*)' }
...