空欄と星印を使い分ける
成分形式では8項目を明示的に渡します。*は任意の値、空欄は空の成分だけを許可します。ベースURLは候補の解決に使い、成分パターンへホスト条件を補いません。
URLとルーティング
1行に1つのURLを入力。下の設定でURLPatternまたはパス専用の照合エンジンを選びます。
URLとパターンはブラウザー内で処理し、入力URLへのリクエストは送りません。
候補URLを1行以上入力してください。
URLPatternでは*が任意値、空欄が空の成分を示します。全体が不一致でも、明細には各成分の独立したキャプチャを表示します。
ベースURLは相対候補と相対文字列パターンに使用します。成分形式の条件には追加しません。
上限:各パターン512、候補200行、各URLとベース2,048、合計131,072 UTF-16単位。ワーカーは2秒まで。
結果が古いか、計算中です。
末尾にスラッシュを加えただけでルートが外れるときは、成功例だけでは原因を見つけにくくなります。URLPatternテストでは一致する例と外れる例を並べ、条件を一つずつ変えて確認できます。
URLパターン照合とフレームワークのルート判定は同じ処理ではありません。名前付きグループやワイルドカードの意味を、選択したライブラリの実際の出力で確認してください。
URLPatternテストはURL全体の結果と成分別の診断を分けて表示します。ホスト名が違ってもパスのidは取得できる場合があります。部分的なキャプチャは診断用で、URL全体が一致したという意味ではありません。
同じpathnameを持つ二つのURLでも、ホスト名を限定するURLPatternでは結果が異なります。パス専用エンジンはホストを照合しないため、両方が一致することがあります。この差を入力例で確かめられます。
成分形式では8項目を明示的に渡します。*は任意の値、空欄は空の成分だけを許可します。ベースURLは候補の解決に使い、成分パターンへホスト条件を補いません。
path-to-regexp v8はExpress 5のパス構文です。省略可能な部分には波括弧、ワイルドカードには名前を使います。切り替えても入力は保持され、構文は自動変換されません。
自動実行は編集後350 msで開始します。オフならボタンかCtrl/Cmd + Enterで実行。編集すると古い結果のコピーと保存が無効になります。不一致行の明細を開いてから書き出してください。
URLPatternテストはurlpattern-polyfill 10.1.0とpath-to-regexp 8.4.2を使います。レポートには版、設定、入力を記録します。ブラウザーのネイティブ実装を測る機能ではなく、各ブラウザーで同じpolyfillを利用します。
URLPatternのグループは成分単位で保持し、追加のデコードは行いません。省略された値はnullで出力。ルート側の名前付きワイルドカードは通常配列となり、デコードを無効にすると元の文字列になります。
相対URLをベースURLで解決し、元の表記と異なる場合は両方を表示します。既定ポートの省略、ホスト名の正規化、ドットセグメントの解消が、照合前に起きていることを確認できます。
無効なURLとデコード失敗は行番号付きで記録し、他の候補は継続します。構文エラーは実行全体を停止。最初は50行だけ表示しますが、JSONには全行と各行のエラーを含めます。
URLPatternは末尾スラッシュを自動で任意扱いにしません。/users/:idは/users/42/と一致しません。ルート側は既定で末尾スラッシュを許可し、設定で無効にできます。
はい。既定では区別し、設定で無視できます。ただしホスト名はURL解析時点で正規化されます。パスの区別を調べるには/users/42と/USERS/42を比較してください。
関係します。searchは文字列のパターンです。a=1&b=2とb=2&a=1を無順序の同じ集合としては比較しません。クエリーを対象外にするならsearchを*にします。
httpsの443などはURL解析で空のportになります。そのため必須の名前付きグループは元の443を取得できません。解決後URLと実際のportパターンを確認してください。
異なります。URLPatternは8成分を照合し、v8はここではパスだけを照合します。v8の任意部分は波括弧、ワイルドカードは名前付きです。エンジンを変えてもExpressアプリの挙動全体を再現するわけではありません。
意外な一致結果がありましたか?