首页 > 求解释以下正则意思

求解释以下正则意思

function loadPageVar (sVar) {
  return decodeURI(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + encodeURI(sVar).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1"));
}

loadPageVar这个方法的作用就是通过正则匹配出当前页面url中的search中对应sVar对应的值;
http://www.example.com?a=12&b=hello

loadPageVar('a');
//12
loadPageVar('b');
//hello

接下来,解释一下这个函数,及这个很看似很复杂的正则

function loadPageVar (sVar) {
    var search = window.location.search;//获取url中的search部分
    sVar = encodeURI(sVar);//编码sVar,因为url中的字符串是被encode之后的,如sVar=“姓名”,其在url中实际为"%E5%A7%93%E5%90%8D"
    sVar = sVar.replace(/[\.\+\*]/g,"\\$&");//转义正则关键字符.+*为\.\+\*,避免影响正则
    var reg = new RegExp("^(?:.*[&\\?]" + sVar + "(?:\\=([^&]*))?)?.*$", "i");
    //以&或?为左侧包含编码后sVar=,且以&或空为右侧
    return decodeURI(search.replace(reg, "$1"));//返回解码后的实际值,$1即为([^&]*))?)为=右侧部分,如a=123中的123
}

这样看起来是不是明白多了,希望对你有帮助

【热门文章】
【热门文章】