如何从分隔符为“&”甚至正则表达式包含“&”的查询参数输入中获取正则表达式?
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: '([^&]*)' }
我有一个场景,我将获得作为路径和查询参数的输入,并且在值的位置我将获得一个正则表达式。
正则表达式输入包含&,它是查询参数中的分隔符。
`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: '([^&]*)' }