在做页面跳转传参的时候有时候需要处理传过来的参数进行匹配数据,可以通过以下几种方法来解决
一,正则法:
这个方法只要一搜索到处都是,比较简单;
function getQueryString (name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)','i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
}
//调用
getQueryString ("参数名");
这种方法中的 【unescape】在MDN中已经被废弃,建议用decodeURI或者decodeURIComponent来替代本方法。
语法:unescape(str) 参数:str为被编码过的字符串,返回值:一个未被转义的新字符串。
decodeURI(encodedURI);参数encodedURI:一个完整的编码过的URI
decodeURI("https://developer.mozilla.org/ru/docs/JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B");
// "https://developer.mozilla.org/ru/docs/JavaScript_шеллы"
//捕捉异常
try{
var a = decodeURI('%E0%A4%A');
}catch(e){
console.error(e);
}
// URIError: malformed URI sequence
二:split拆分法
var strs;
function GetRequest () {
var url = location.search;//获取url中“?”符后的字符串
var theRequest = new Object();
if (url.indexOf('?') != -1) {
var str = url.substr(1);
strs = str.split('&');
for (var i = 0;i < strs.length; i++) {
theRequest[strs[i].split('=')[0]] = decodeURI(str[i].split(('=')[1]);
}
}
return theRequest;
}
var Request = new Object();
Request = GetRequest();
Request['参数1'];
0 个评论
要回复文章请先登录或注册