URL とクエリ文字列

URL とクエリ文字列

URL とクエリ文字列

URL レイヤーは WHATWG スタイルのパースを実装しています — ブラウザが適用するのと同じ動作です — そのため、ドキュメントから抽出された URL は実際のユーザーエージェントでの動作と同様に解決および正規化されます。


パースと検証

URL.parse() は絶対または相対 URL を解析します; URL.can_parse() はオブジェクトを構築せずに有効性を返します。パース失敗時には型付けされた URLParseError が発生します。

クエリ文字列

URLSearchParams はクエリパラメータを読み取り、編集します: append(), get(), get_all(), has(), および delete() はラウンドトリップをカバーし、マルチバリューのセマンティクスを保持します。


ヒントとベストプラクティス

  • フィルタで簡易的な検証を行うには can_parse() を使用し、コンポーネントが必要なときだけ parse() で構築してください
  • クエリキーが繰り返されることを覚えておいてください — パラメータが複数回出現する可能性がある場合は get_all() を使用します
  • 正規表現で事前検証するよりも、URLParseError を捕捉してください

一般的な問題

問題原因修正
相対 URL が解析に失敗しましたベースが提供されていませんURL.parse() に従ってベースを指定してください
最初のクエリ値のみが返されます繰り返しキーに get() を使用しました使用 get_all()
コンポーネント内の奇妙な文字WHATWG 正規化が動作中期待通り — これはブラウザの挙動と一致します

FAQ

パースは WHATWG 標準に従っていますか?

はい — 正規化とコンポーネントの分割はブラウザの動作を鏡のように再現します。

URL をパースせずにチェックするにはどうすればいいですか?

URL.can_parse() はオブジェクト構築せずに有効性を返します。

クエリ文字列をその場で編集できますか?

はい — URLSearchParams は append/get/has/delete の往復操作をサポートします。


API Reference の概要

クラス/メソッド説明
URL.parseURL を解析する
URL.can_parse構築なしの有効性チェック
URLSearchParams.appendクエリパラメータを追加
URLSearchParams.get_allキーのすべての値
URLParseError型付きパース失敗

参照

 日本語