[解決済み] JavaScriptでクエリ文字列の値を取得するにはどうすればよいですか?
質問
をプラグインレスで取得する方法はありますか? クエリ文字列 の値を jQuery 経由で(または経ずに)取得できますか?
もしそうなら、どのように?そうでなければ、そうすることができるプラグインはありますか?
どのように解決するのですか?
更新日: 2022年1月
使用方法
Proxy()
はより
パフォーマン
を使用するよりも
Object.fromEntries()
とサポートが充実しています。
const params = new Proxy(new URLSearchParams(window.location.search), {
get: (searchParams, prop) => searchParams.get(prop),
});
// Get the value of "some_key" in eg "https://example.com/?some_key=some_value"
let value = params.some_key; // "some_value"
更新日:2021年6月
すべてのクエリパラメータが必要な場合のために。
const urlSearchParams = new URLSearchParams(window.location.search);
const params = Object.fromEntries(urlSearchParams.entries());
更新日:2018年9月
を使用することができます。 URLSearchParams は、シンプルで まともな(完全ではない)ブラウザのサポート .
const urlParams = new URLSearchParams(window.location.search);
const myParam = urlParams.get('myParam');
オリジナル
そのためには、jQueryは必要ありません。純粋なJavaScriptを使えばいいのです。
function getParameterByName(name, url = window.location.href) {
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
使用方法
// query string: ?foo=lorem&bar=&baz
var foo = getParameterByName('foo'); // "lorem"
var bar = getParameterByName('bar'); // "" (present with empty value)
var baz = getParameterByName('baz'); // "" (present with no value)
var qux = getParameterByName('qux'); // null (absent)
注:パラメータが複数回存在する場合 (
?foo=lorem&foo=ipsum
) の場合、最初の値を取得します (
lorem
). これについては標準がなく、使い方は様々です。例えば、この質問をご覧ください。
HTTP GET クエリの重複キーの権威的な位置づけ
.
注:この関数は大文字と小文字を区別します。もし、大文字小文字を区別しないパラメータ名を希望する場合は、以下のようになります。 RegExpに'i'修飾子を追加する。
注:no-useless-escape eslintエラーが発生する場合は、次のように置き換えることができます。
name = name.replace(/[\[\]]/g, '\\$&');
で
name = name.replace(/[[\]]/g, '\\$&')
.
に基づく更新です。 URLSearchParamsの仕様 を使用すると、より簡潔に同じ結果を得ることができます。"と題した回答を参照してください。 URLSearchParams 以下の通りです。
関連
-
[解決済み】Failed to load resource: net::ERR_FILE_NOT_FOUND loading json.js
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
-
[解決済み】Syntax error: JavaScriptの不正なreturnステートメント
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み】SecurityError: オリジンを持つフレームがクロスオリジンフレームにアクセスするのをブロックした
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】Uncaught TypeError: 未定義のプロパティ 'msie' を読み取れない - jQuery tools
-
[解決済み] JavaScriptからGETパラメータを取得する方法 [重複]について
-
[解決済み] URLパラメータをJavaScriptのオブジェクトに変換する方法は?[重複しています]。
-
[解決済み】「GET」パラメータから値を取得する(JavaScript)【重複】。
-
[解決済み】jQueryでURLからquerystringを取得する【重複あり