【发布时间】:2020-02-02 00:11:24
【问题描述】:
在寻找返回 url 参数值的方法时,我遇到了这段代码。
参考:https://html-online.com/articles/get-url-parameters-javascript/
function getUrlParts(href) {
var partsSet = {};
var parts = href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(a,key,value) {
partsSet[key] = value;
});
return partsSet;
}
我设法使用此代码来实现我想做的事情,但我不明白。我试图在各种正则表达式实用程序网站上打那个正则表达式位,但是 没有运气。我也不明白 " , function(a,key,value) " 这部分。请解释此代码如何返回 url 参数值。
【问题讨论】:
-
你看过这个
String.replace MDN了吗? -
嗨,是的 var str = "hi android"; var rep = str.replace("hi", "hello") 和 hi 变成 hello。我试图将这个概念应用到上面的那段代码中,但由于“函数(a,key,value),我没有得到它
-
阅读上面链接中给出的描述,
replaced函数的回调接受不同的参数,即(完全匹配,gourp1,gourp2...)` -
公平地说,捕获组,在正则表达式中由
()表示,是理解这段代码发生了什么的关键。replace()将整个匹配作为替换函数的第一个参数传递,然后每个捕获组匹配到替换函数的以下两个参数。然后将每个键和值设置为partsSet对象中的键/值对。
标签: javascript regex url parameters