我想使用正则表达式智能解析URL查询参数。使用正则表达式解析URL查询参数
事情我已经不得不考虑: 1)PARAMS可以不按顺序 2)只有某些PARAMS必须匹配
给定一个查询字符串:”参数1 = TEST1 &参数2 = test2的& parm3 = test3“ 我想运行javascript正则表达式来解析param1的值和param3的值。
我拿出这么远的正则表达式是:
/(?:[?&](?:param1=([^&]*)|param3=([^&]*)|[^&]*))+$/g
此正则表达式看起来像https://regex101.com/地盘工作对我罚款。
但是,当我运行下面的JS方法时,我总是得到$ 2的未定义,这是param1的值应该分析的值。任何帮助或建议?
"?param1=test1¶m2=test2¶m3=test3".replace(
/(?:[?&](?:param1=([^&]*)|param3=([^&]*)|[^&]*))+$/g,
function ($0, $1, $2, $3) { return $0 + ' ' + $1 + ' ' + $2 + ' ' + $3; });
返回$ 2为undefined,$ 3为test3。但是,如果我从url查询字符串中排除param2和param3,我可以成功地将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 –