JavaScriptでリクエストから「GET」変数を取得するにはどうすればよいですか?
jQueryまたはYUIを実行しますか?この機能は組み込まれていますか?
JavaScriptでリクエストから「GET」変数を取得するにはどうすればよいですか?
jQueryまたはYUIを実行しますか?この機能は組み込まれていますか?
回答:
すべてのデータは以下で利用可能です
window.location.search
文字列を解析する必要があります。
function get(name){
if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search))
return decodeURIComponent(name[1]);
}
GET変数名をパラメーターとして関数を呼び出すだけです。
get('foo');
この関数は、変数に値がないか、変数が存在しない場合、変数の値または未定義を返します。
あなたはjquery.url私がこのようにしたのを使うことができました:
var xyz = jQuery.url.param("param_in_url");
var xyz = jQuery.url().param("param_in_url");jQuery.url()現在のページのURLを示す正しい構文です。訂正してください。
すべてのリクエストを含むオブジェクトが必要な場合は、2セントを入れるだけです
function getRequests() {
var s1 = location.search.substring(1, location.search.length).split('&'),
r = {}, s2, i;
for (i = 0; i < s1.length; i += 1) {
s2 = s1[i].split('=');
r[decodeURIComponent(s2[0]).toLowerCase()] = decodeURIComponent(s2[1]);
}
return r;
};
var QueryString = getRequests();
//if url === "index.html?test1=t1&test2=t2&test3=t3"
console.log(QueryString["test1"]); //logs t1
console.log(QueryString["test2"]); //logs t2
console.log(QueryString["test3"]); //logs t3
各getパラメータのキーは小文字に設定されていることに注意してください。そこで、ヘルパー関数を作成しました。したがって、大文字と小文字は区別されません。
function Request(name){
return QueryString[name.toLowerCase()];
}
以下のコードを試してください。URLからGETパラメータを取得するのに役立ちます。 詳細については。
var url_string = window.location.href; // www.test.com?filename=test
var url = new URL(url_string);
var paramValue = url.searchParams.get("filename");
alert(paramValue)
今日、私は一緒に以下を入れて少しして、連想配列の中に、ページのリクエストパラメータを取得するために必要な、ヘルプからの私の 友人。また、=asなしでパラメータを処理しますtrue。
例を挙げて:
// URL: http://www.example.com/test.php?abc=123&def&xyz=&something%20else
var _GET = (function() {
var _get = {};
var re = /[?&]([^=&]+)(=?)([^&]*)/g;
while (m = re.exec(location.search))
_get[decodeURIComponent(m[1])] = (m[2] == '=' ? decodeURIComponent(m[3]) : true);
return _get;
})();
console.log(_GET);
> Object {abc: "123", def: true, xyz: "", something else: true}
console.log(_GET['something else']);
> true
console.log(_GET.abc);
> 123
現在のページのURLを解析して、GETパラメーターを取得できます。URLは、を使用して見つけることができますlocation.href。
すでにjqueryを使用している場合は、これを処理するjqueryプラグインがあります。
map-reduceソリューション:
var urlParams = location.search.split(/[?&]/).slice(1).map(function(paramPair) {
return paramPair.split(/=(.+)?/).slice(0, 2);
}).reduce(function (obj, pairArray) {
obj[pairArray[0]] = pairArray[1];
return obj;
}, {});
使用法:
For url: http://example.com?one=1&two=2
console.log(urlParams.one) // 1
console.log(urlParams.two) // 2
map/reduceは、コレクション処理メカニズムにすぎません。任意のサイズのデータで使用できます。それが原因並列化するという意欲にビッグデータのためのより有名である
他の回答とは異なり、UrlSearchParamsオブジェクトは正規表現やその他の文字列操作の使用を回避でき、最新のブラウザで使用できます。
var queryString = location.search
let params = new URLSearchParams(queryString)
// example of retrieving 'id' parameter
let id = parseInt(params.get("id"))
console.log(id)
ここでの関数は、名前でパラメーターを返します。小さな変更で、ベースURL、パラメーター、またはアンカーを返すことができるようになります。
function getUrlParameter(name) {
var urlOld = window.location.href.split('?');
urlOld[1] = urlOld[1] || '';
var urlBase = urlOld[0];
var urlQuery = urlOld[1].split('#');
urlQuery[1] = urlQuery[1] || '';
var parametersString = urlQuery[0].split('&');
if (parametersString.length === 1 && parametersString[0] === '') {
parametersString = [];
}
// console.log(parametersString);
var anchor = urlQuery[1] || '';
var urlParameters = {};
jQuery.each(parametersString, function (idx, parameterString) {
paramName = parameterString.split('=')[0];
paramValue = parameterString.split('=')[1];
urlParameters[paramName] = paramValue;
});
return urlParameters[name];
}
私のために働く
url:http:// localhost:8080 /#/?access_token = 111
function get(name){
const parts = window.location.href.split('?');
if (parts.length > 1) {
name = encodeURIComponent(name);
const params = parts[1].split('&');
const found = params.filter(el => (el.split('=')[0] === name) && el);
if (found.length) return decodeURIComponent(found[0].split('=')[1]);
}
}