JavaScriptでクエリ文字列を取得する方法

概要:このチュートリアルでは、JavaScriptでURLSearchParamsを使用してクエリ文字列パラメータを取得する方法を学びます。

クエリ文字列を取得するには、locationオブジェクトのsearchプロパティにアクセスします。

location.search
Code language: CSS (css)

location.searchの値が次の場合を想定します。

'?type=list&page=20'
Code language: JavaScript (javascript)

クエリ文字列を操作するには、URLSearchParamsオブジェクトを使用できます。

const urlParams = new URLSearchParams(location.search);
Code language: JavaScript (javascript)

URLSearchParamsイテラブルオブジェクトであるため、for...of構文を使用して、クエリ文字列パラメータである要素を反復処理できます。

const urlParams = new URLSearchParams(location.search);

for (const [key, value] of urlParams) {
    console.log(`${key}:${value}`);
}
Code language: JavaScript (javascript)

出力

type:list
page:20
Code language: CSS (css)

便利なURLSearchParamsメソッド

URLSearchParamsには、パラメータのキー、値、およびエントリのイテレータを返すいくつかの便利なメソッドがあります。

  • keys()は、パラメータキーを反復処理するイテレータを返します。
  • values()は、パラメータ値を反復処理するイテレータを返します。
  • entries()は、パラメータの(キー, 値)ペアを反復処理するイテレータを返します。

keys()の例

次の例では、keys()メソッドを使用して、クエリ文字列のすべてのパラメータ名をリストします。

const urlParams = new URLSearchParams('?type=list&page=20');

for (const key of urlParams.keys()) {
    console.log(key);
}
Code language: JavaScript (javascript)

出力

type
page

values()の例

次の例では、keys()メソッドを使用して、クエリ文字列のすべてのパラメータ値をリストします。

const urlParams = new URLSearchParams('?type=list&page=20');

for (const value of urlParams.values()) {
    console.log(value);
}
Code language: JavaScript (javascript)

出力

list
20
Code language: PHP (php)

entries()の例

次の例では、entries()メソッドを使用して、クエリ文字列のパラメータキー/値のすべてのペアをリストします。

const urlParams = new URLSearchParams('?type=list&page=20');

for (const entry of urlParams.entries()) {
    console.log(entry);
}
Code language: JavaScript (javascript)

出力

["type", "list"]
["page", "20"]
Code language: JSON / JSON with Comments (json)

クエリ文字列パラメータが存在するかどうかを確認する

URLSearchParams.has()メソッドは、指定された名前のパラメータが存在する場合はtrueを返します。

const urlParams = new URLSearchParams('?type=list&page=20');

console.log(urlParams.has('type')); // true
console.log(urlParams.has('foo'));  // false
Code language: JavaScript (javascript)

出力

true
false
Code language: JavaScript (javascript)

まとめ

  • URLSearchParamsは、クエリ文字列パラメータを操作するためのインターフェースを提供します。
  • URLSearchParamsはイテラブルであるため、for...of構文を使用してクエリ文字列パラメータを反復処理できます。
  • URLSearchParamshas()メソッドは、指定された名前のパラメータが存在するかどうかを判断します。
このチュートリアルは役に立ちましたか?