在两个页面间通过url传参的时候,需要获取传递的查询字符串,例如获取下面url的name对应的值:
www.baidu.com/img?name=lili&age=18&school=81school
有两种方法,一是用数组split()为主的拆分,二是用正则表达式的拆分。
1 数组拆分:
function getQueryStringArgs(){ var qs = (location.search.length > 0 ? location.search.substring(1) : ""); args = {}, items = qs.length ? qs.split("&") : [], item = null, name = null, value = null, i = 0, len = items.length; for(i=0; i<len; i++){ item = items.split("="); name = decodeURIComponent(item[0]); value = decodeURIComponent(item[1]); if(name.length){ args[name] = value; } } return args;}
2 正则表达式:
function getQuery(name) { var reg = new RegExp("(^|&)"+name+"=([^&]*)(&|$)"), str = window.location.search.substr(1).match(reg); if(str !== null) { return unescape(str[2]); } return null;}
3 自己写的:(反面案例)
function getQuery(){ var search = location.search.substring(1), queryArr = search.split('&'), obj; for(var i=0, len=queryArr.length; i < len; i++){ var str = queryArr.split('='); obj[str[0]] = str[1]; } return obj;}
1是参考js高级程序设计P207页。
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦