javascript - 求解释以下正则意思
黄舟
黄舟 2017-04-10 15:04:57
[JavaScript讨论组]
function loadPageVar (sVar) {
  return decodeURI(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + encodeURI(sVar).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1"));
}
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(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
}

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号