jsのロケーションオブジェクトのマッチングルールは?
JavaScript では、Locationオブジェクトは現在のページのURLを表す。このオブジェクトは URL の各部分が、正規表現に合致するとき、一致とみなす。
Locationオブジェクトのプロパティには以下が含まれます。
- ハッシュ:URLのアンカー部分(#以降)
- ホスト:URLのホスト部分(ポート番号を含む)
- ホスト名:URLのホスト名部分(ポート番号なし)
- href:完全なURL文字列
- pathname:URLのパス部分
- ポート:URLのポート番号の部分
- URLのスキーム部分
- 検索:URLのクエリパラメータ部分(?以降)
マッチング条件は以下の通りです。
- 2つのLocationオブジェクトのhrefプロパティ値が等しい場合は一致していると見なされる。
- プロトコル、ホスト名、ポート、パス名というLocationオブジェクトの4つの属性の値が同一であれば、それらが一致すると判断します。
- プロトコル、ホスト名、ポートとパスのプロパティが、2つのLocationオブジェクトで空文字列である場合、それらは一致しているとみなされます(つまり、2つのLocationオブジェクトがどちらも対応するプロパティを指定しません)。
- そうでなければ、二つのLocationオブジェクトは一致しないとみなす。
Locationオブジェクトのhashおよびsearchプロパティの値は照合ルールに関与していないことに注意してください。それらの値が異なっていても、2つのLocationオブジェクトは一致するとみなすことができます。