百度了很多 ,两次decodeURI 的方式貌似是服务端用的
这是别人的解决方式,帮我也解决了。
-------------------------------------------------------------------------------------------------------------------
最近在做的项目当中有一个需要在页面上获取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;
- }
但当参数中有中文的时候, 就会出现乱码的问题。 通过查询资料 原来是浏览器默认使用的是 encodeURI 对汉字进行的编码 所以在解码的时候就需要使用decodeURI 而不是 unescape 上面的代码稍微修改下后 就能解决中文乱码的问题了
改后的代码:
- 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://blog.csdn.net/sessionsong/article/details/51487887
---------------------------------------------------------------------------------------------------------------------
我的写完了是这样
function
getUrlParms(
name) {
var
reg =
new
RegExp(
"(^|&)" +
name +
"=([^&]*)(&|$)");
var
r =
window.
location.
search.
substr(
1).
match(
reg);
if (
r !=
null)
return
decodeURI(
r[
2]);
return
null;
}
var
username =
getUrlParms(
"username");
var
password =
getUrlParms(
"password");
var
name =
getUrlParms(
"name");
var
idNumber =
getUrlParms(
"idNumber");
var
phone =
getUrlParms(
"phone");
var
address =
getUrlParms(
"address");
$(
"input[name='titlea']").
val(
username);
$(
"input[name='titleb']").
val(
password);
$(
"input[name='titlec']").
val(
name);
$(
"input[name='titled']").
val(
idNumber);
$(
"input[name='titlee']").
val(
phone);
$(
"input[name='titlef']").
val(
address);