URL中のQuery StringはURLSearchParams
を使って簡単にparseできる。
const param = new URLSearchParams(('key1=%E3%82%AD%E3%83%BC1&key2=%E5%80%A41'));
なお、URLデコードも自動で行われる。
値の参照
これはキーが分かってる場合。
param.get('key1');
キーの列挙
キーを列挙するには以下。
for (const key of param.keys()) { console.log(key); }
キー・値のペアを列挙
for (const [key, val] of param) { console.log(key); console.log(val); }
アクセス中のURLのクエリ文字列を取得
ブラウザでアクセス中のページのQuery Stringはwindow.location.search
で参照できる。
if (window.location.search.length > 0) { const param = new URLSearchParams(window.location.search); for (const [key, val] of param) { console.log(key); console.log(val); } }
任意のURLの場合
Query String付きの任意のURLの場合、?
までを切り落としてURLSearchParams
を使ってもいいが、URL文字列を解析するURL
を使えば、内部処理でURLSearchParams
を使用してQuery String部分がparseされるので楽。
const url = 'https://www.google.com/search?q=%E8%99%B9%E3%83%B6%E5%92%B2&sourceid=chrome&ie=UTF-8'; const url_obj = new URL(url); const param = url_obj.searchParams; console.log(param.get('q'));
ちなみにGoogle Apps ScriptだとURLSearchParams
は使えない。