概要:このチュートリアルでは、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
構文を使用してクエリ文字列パラメータを反復処理できます。URLSearchParams
のhas()
メソッドは、指定された名前のパラメータが存在するかどうかを判断します。
このチュートリアルは役に立ちましたか?