js获取url参数值的方法总结
1、方式一:通过字符串截取的方式获取参数值;2、方式二:通过正则获取到参数值;1、方式一:通过字符串截取的方式获取参数值;
1)、函数一:获取URL中的参数名及参数值的集合
1 /**2 * [获取URL中的参数名及参数值的集合]3 * 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明4 * @param {[string]} urlStr [当该参数不为空的时候,则解析该url中的参数集合]5 * @return {[string]} [参数集合]6 */7 function GetRequest(urlStr) {8if (typeof urlStr == "undefined") {9 var url = decodeURI(location.search); //获取url中"?"符后的字符串10} else {11 var url = "?" + urlStr.split("?")[1];12}13var theRequest = new Object();14if (url.indexOf("?") != -1) {15 var str = url.substr(1);16 strs = str.split("&");17 for (var i = 0; i < strs.length; i++) {18 theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);19 }20}21return theRequest;22 }
1 var parms_1 = GetRequest();2 console.log(parms_1); // {"uid":"admin","rid":"1","fid":"2","name":"小明"}3 console.log(parms_1['name']); // '小明'4 var parms_2 = GetRequest('http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明');5 console.log(parms_2); // {"uid":"admin","rid":"1","fid":"2","name":"小明"}6 console.log(parms_2['name']); // '小明'
2)、函数二:通过参数名获取url中的参数值
1 /**2 * [通过参数名获取url中的参数值]3 * 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明4 * @param {[string]} queryName [参数名]5 * @return {[string]} [参数值]6 */7 function GetQueryValue(queryName) {8var query = decodeURI(window.location.search.substring(1));9var vars = query.split("&");10for (var i = 0; i < vars.length; i++) {11 var pair = vars[i].split("=");12 if (pair[0] == queryName) { return pair[1]; }13}14return null;15 }
1 var queryVal=GetQueryValue('name');2 console.log(queryVal);// 小明
回到顶部
2、方式二:通过正则获取到参数值;
1 /**2 * [通过参数名获取url中的参数值]3 * 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明4 * @param {[string]} queryName [参数名]5 * @return {[string]} [参数值]6 */7 function GetQueryValue1(queryName) {8var reg = new RegExp("(^|&)" + queryName + "=([^&]*)(&|$)", "i");9var r = window.location.search.substr(1).match(reg);10if ( r != null ){11 return decodeURI(r[2]);12}else{13 return null;14}15 }
1 var queryVal=GetQueryValue1('name');2 console.log(queryVal);// 小明