如何从分隔符为“&”甚至正则表达式包含“&”的查询参数输入中获取正则表达式?

how to get the regex from the query param input where the delimiter is "&" and even the regex contains "&"?

我有一个场景,我将获得作为路径和查询参数的输入,并且在值的位置我将获得一个正则表达式。

正则表达式输入包含&,它是查询参数中的分隔符。

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

我想从查询参数中动态获取此正则表达式 ([^&]*)

任何想法或建议可能很愚蠢/基本问题请帮忙?

在发送请求之前 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: '([^&]*)' }