JS:指定したurlパラメータを取得するか、すべて(オブジェクト形式)
1604 ワード
私のホームページに入って、もっとJSの分かち合いを見ます!
私のコードはどれだけ短いか、この文章はどれだけ短いか!(ㅍ_ㅍ)
ブラウザで得られたパラメータの文字列を取得し、判断してオブジェクトに変換し、パラメータ名が指定されていない場合は、そのオブジェクトに直接戻ります.
必要なことはすべて注釈の中にあります.まずコードを貼ってください.(プログラマーがなぜあまり話さないのかが分かったようです)
パラメータに中国語がある場合は「decodeURI()」を直接使用しますが、「unescape()」は適用されません.(QQQBrowser、Chrome、IE 9-11をテストしました)
実行:
ファイルのダウンロード(CSDN)
指定したパラメータを正規で取得するコードもあります.まぁ、直接コードを貼ってみましょう.
私のコードはどれだけ短いか、この文章はどれだけ短いか!(ㅍ_ㅍ)
1.考え方
ブラウザで得られたパラメータの文字列を取得し、判断してオブジェクトに変換し、パラメータ名が指定されていない場合は、そのオブジェクトに直接戻ります.
2.コード
必要なことはすべて注釈の中にあります.まずコードを貼ってください.(プログラマーがなぜあまり話さないのかが分かったようです)
/**
* :
* ,
* ,
* :
* :"?id=123&name= "
* :{id: "123", name: " "}
*/
var getLocationParam = (name) = >{
let param = window.location.search.substr(1);
if (!param) {
return undefined;
} else {
let pArr = param.split("&");
let res = {};
for (let i = 0; i < pArr.length; i++) {
let item = pArr[i].split("=");
res[item[0]] = item[1] ? decodeURI(item[1]) : null;
}
return !name ? res: res[name];
}
};
パラメータに中国語がある場合は「decodeURI()」を直接使用しますが、「unescape()」は適用されません.(QQQBrowser、Chrome、IE 9-11をテストしました)
実行:
console.log(getLocationParam("id"));
// :123
console.log(getLocationParam("name"));
// :
console.log(getLocationParam("due"));
// :undefined
console.log(getLocationParam());
// :{id: "123", name: " "}
ファイルのダウンロード(CSDN)
指定したパラメータを正規で取得するコードもあります.まぁ、直接コードを貼ってみましょう.
/**
* :
* :
*/
var getLocationQueryByName = (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;
};