html页面需要获取URL中的参数值,有如下两种方法:
1、正则表达式解析。代码如下:
1 2 3 4 5 |
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; } |
调用如下:
1 2 3 4 5 6 |
url地址: index.html?id=1&name=小丽 调用: var id = getQueryString("id"); var name= getQueryString("name"); |
2、js解析处理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<Script language="javascript"> 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]]=unescape(strs[i].split("=")[1]); } } return theRequest; } </Script> |
调用如下:
1 2 3 4 5 6 7 |
var Request = new Object(); Request = GetRequest(); var 参数1,参数2,参数3,参数N; 参数1 = Request['参数1']; 参数2 = Request['参数2']; 参数3 = Request['参数3']; 参数N = Request['参数N']; |
使用后发现如果参数值是中文会出现乱码问题,需要解码,用decodeURI就可以了:
1 2 |
var name = getQueryString("name"); name = decodeURI(name); |
或者解析的时候直接修改:
1 2 3 4 5 |
function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return decodeURI(r[2]); return null; } |
暂无评论