美文网首页
通过正则获取到参数值

通过正则获取到参数值

作者: 记录学习生活 | 来源:发表于2021-10-13 17:24 被阅读0次
    /**
     * [通过参数名获取url中的参数值]
     * 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明
     * @param  {[string]} queryName [参数名]
     * @return {[string]}           [参数值]
     */
    function GetQueryValue(queryName) {
        var reg = new RegExp("(^|&)" + queryName + "=([^&]*)(&|$)", "i");
        var r = window.location.search.substr(1).match(reg);
        /**
        *如果url中‘?’前面有‘#’,就要把search换成hash,需要截取几位字符串根据‘?’前面有几位具体设置
        *var r = window.location.search.substr(1).match(reg);
        */
        if ( r != null ){
           return decodeURI(r[2]);
        }else{
           return null;
        }
     }
    

    调用

    var queryVal=GetQueryValue('name');
    console.log(queryVal);// 小明
    

    search和hash的区别
    search: ? 后的部分,又称为查询字符串 "?name=kang&when=2016"
    hash: 返回 # 之后的内容 "#first"
    注意上面的search和hash的区别,如果URL中?之前有一个#比如:“http://localhost:63342/index.html#/version?type=35&id=5”那么使用window.location.search得到的就是空(“”)。因为“?type=35&id=5”串字符是属于“#/version?type=35&id=5”这个串字符的,也就是说查询字符串search只能在取到“?”后面和“#”之前的内容,如果“#”之前没有“?”search取值为空。
    详情参考

    相关文章

      网友评论

          本文标题:通过正则获取到参数值

          本文链接:https://www.haomeiwen.com/subject/cbheoltx.html