1. 所谓的url参数,也就是地址栏中“?”之后的内容
2. 例子 + 分析
(1)获取地址栏“?”之后的内容
// 直接获取的(获取?之后的内容) var search = window.location.search; // 例如:"?userName=cyq&age=24&sex=f" // 写死的地址 var href = "http://www.cyqzy.com?userName=cyq&age=24&sex=f"; var ksbz = href.indexOf("?"); // 截取字符串的三种方式,返回结果:userName=cyq&age=24&sex=f var hrefStr = href.substr(ksbz+1); // 参数(start,length) var hrefStr2 = href.substring(ksbz+1); // 参数(start,end),返回结果不包括end var hrefStr3 = href.slice(ksbz+1); // 参数(start,end), 返回结果不包括end
(2)方法一(返回json对象)
var splitStr = hrefStr.split("&"); // 返回结果:["userName=cyq", "age=24", "sex=f"] var urlObj = {} // 等价于 var urlObj = new Object() for(var i = 0; i < splitStr.length; i++){ urlObj[splitStr[i].split("=")[0]] = splitStr[i].split("=")[1]; } console.log(urlObj) // 返回结果:Object {userName: "cyq", age: "24", sex: "f"}
(3)方法二(获取参数值)
var name = "age"; // name指的是要取的属性名称,比如username或者age或者sex var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var res = hrefStr.match(reg); if (res != null){ console.log(res);//["&age=24&", "&", "24", "&", index: 12, input: "userName=cyq&age=24&sex=f"] console.log(res[2]); // 24 }