js获取url参数及中文乱码处理

html页面需要获取URL中的参数值,有如下两种方法:

1、正则表达式解析。代码如下:

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

调用如下:

url地址:
index.html?id=1&name=小丽

调用:
var id = getQueryString("id");
var name= getQueryString("name");

2、js解析处理

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

调用如下:

var Request = new Object(); 
Request = GetRequest(); 
var 参数1,参数2,参数3,参数N; 
参数1 = Request['参数1']; 
参数2 = Request['参数2']; 
参数3 = Request['参数3']; 
参数N = Request['参数N']; 

使用后发现如果参数值是中文会出现乱码问题,需要解码,用decodeURI就可以了:

var name = getQueryString("name"); 
name
= decodeURI(name);

 或者解析的时候直接修改:

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; 
} 
原文地址:https://www.cnblogs.com/java-chanjuan/p/8276762.html