js获取url参数值的两种方式

js获取url参数值的方法有很多,下面也为大家介绍两种,喜欢的朋友可以测试下,希望对大家有所帮助

 
 
方法一:正则分析法 
代码如下:

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; 

调用方法: 
alert(GetQueryString("参数名1"));alert(GetQueryString("参数名2")); 
alert(GetQueryString("参数名3")); 

方法二 
代码如下:

<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> 

调用方法: 
<Script language="javascript"> 
var Request = new Object(); 
Request = GetRequest(); 
var 参数1,参数2,参数3,参数N; 
参数1 = Request['参数1']; 
参数2 = Request['参数2']; 
参数3 = Request['参数3']; 
参数N = Request['参数N']; 
</Script>
js 处理URL实用技巧

 

escape()、encodeURI()、encodeURIComponent()三种方法都能对一些影响URL完整性的特殊字符进行过滤。

 
 
但后两者是将字符串转换为UTF-8的方式来传输,解决了页面编码不一至导致的乱码问题。 

例如:发送页与接受页的编码格式(Charset)不一致(假设发送页面是GB2312而接收页面编码是UTF-8),使用escape()转换传输中文字串就会出现乱码问题。 
以下是JS下对URL进行编/解码的各种方法: 

escape方法:就对@*+/ A-Z 0-9 a-z这些字符不编码,其它非ASCII字符都会编码以%XX编码替换,解码使用unescape,escape 方法不能用来对“统一资源标识符”(URI) 进行编码。对其编码应使用 encodeURI 和encodeURIComponent 方法。encodeURI():对! @ # $ & * ( ) = : / ; ? + ' A-Z 0-9 a-z,其它的字符都会被编码,解码使用decodeURI(); 
如果想使更多的字会被编码,例:/..,请使用encodeURIComponent()方法,被此方法编码后,参数传递给服务器就是一种无效的字符,解码使用decodeURIComponent() 
原文地址:https://www.cnblogs.com/xiaohong/p/4236258.html