URL a řetězce dotazů
URL a dotazové řetězce
Vrstva URL implementuje parsování ve stylu WHATWG — stejné chování, jaké používají prohlížeče — takže URL extrahované z dokumentů se rozlišují a normalizují tak, jak by to dělalo skutečné uživatelské rozhraní.
Parsování a validace
URL.parse() parsuje absolutní nebo relativní URL; URL.can_parse() odpovídá na platnost bez vytváření objektu. Selhání parsování vyvolá typovaný URLParseError.
Dotazové řetězce
URLSearchParams čte a upravuje dotazové parametry: append(), get(), get_all(), has() a delete() pokrývají celý proces, zachovávajíce semantiku vícehodnotových parametrů.
Tipy a osvědčené postupy
- Použijte
can_parse()pro levnou validaci ve filtrech; vytvořte pomocíparse()pouze když potřebujete komponenty - Pamatujte, že klíče dotazu se mohou opakovat — použijte
get_all(), když se parametr může objevit vícekrát - Zachyťte
URLParseErrormísto předběžné validace pomocí regulárních výrazů
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
| Relativní URL se nepodařilo parsovat | Nebyla poskytnuta základna | Poskytněte základ podle URL.parse() |
| Vrácena pouze první hodnota dotazu | Použito get() na opakovaném klíči | Použijte get_all() |
| Podivné znaky v komponentách | WHATWG normalizace v praxi | Očekáváno — toto odpovídá chování prohlížeče |
FAQ
Dodržuje parsování standard WHATWG?
Ano — normalizace a rozdělení komponent odráží chování prohlížeče.
Jak mohu zkontrolovat URL bez parsování?
URL.can_parse() vrací platnost bez vytváření objektu.
Mohu upravit řetězec dotazu přímo?
Ano — URLSearchParams podporuje round-tripy append/get/has/delete.
API Reference Shrnutí
| Třída/Metoda | Popis: |
|---|---|
URL.parse | Rozparsovat URL |
URL.can_parse | Kontrola platnosti bez konstrukce |
URLSearchParams.append | Přidat parametr dotazu |
URLSearchParams.get_all | Všechny hodnoty pro klíč |
URLParseError | Selhání typového parsování |