JS取得URLのパラメータ値(QueryString)の4つの方法を共有します。
2328 ワード
方法1:正規法
function GetRequest(){ var url=locations.search;/urlの「?」を取得します後の文字列 if(url.indexOf)!=-1){ //パラメータがあるかどうかを判断します。 var str=url.substr(1)//最初の文字から0番目は?号は疑問符を除くすべての文字列を取得します。 sts=str.split(=) //等号で区切られます。(パラメータが一つしかないと知っていますので、直接に等号で区切ります。複数のパラメータがあれば&号で区切って等号で区切ります。) alert(sts[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;
}
// :
alert(GetQueryString(" 1"));
alert(GetQueryString(" 2"));
alert(GetQueryString(" 3"));
方法2:スプリット分割法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;
}
var Request = new Object();
Request = GetRequest();
// var 1, 2, 3, N;
// 1 = Request[' 1'];
// 2 = Request[' 2'];
// 3 = Request[' 3'];
// N = Request[' N'];
方法の3:また正則を見てJSを通じてurlパラメーターを得て、これはよく使います。例えばurlのようなものです。http://wwww.jb51.net/?q=jsパラメータqの値を取得したいです。以下の関数で呼び出すことができます。
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg); // url "?"
var context = "";
if (r != null)
context = r[2];
reg = null;
r = null;
return context == null || context == "" || context == "undefined" ? "" : context;
}
alert(GetQueryString("q"));
方法四:単一パラメータの取得方法function GetRequest(){ var url=locations.search;/urlの「?」を取得します後の文字列 if(url.indexOf)!=-1){ //パラメータがあるかどうかを判断します。 var str=url.substr(1)//最初の文字から0番目は?号は疑問符を除くすべての文字列を取得します。 sts=str.split(=) //等号で区切られます。(パラメータが一つしかないと知っていますので、直接に等号で区切ります。複数のパラメータがあれば&号で区切って等号で区切ります。) alert(sts[1]); //最初のパラメータを直接イジェクトします。複数のパラメータがあればループします。 }}