Ktoré znaky spôsobujú neplatnosť adresy URL?
Sú tieto adresy URL platné?
example.com/file[/].html
http://example.com/file[/].html
Vo všeobecnosti môžu URI podľa definície RFC 3986 (pozri Sekcia 2: Znaky) obsahovať ktorýkoľvek z nasledujúcich 84 znakov:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=
Všimnite si, že tento zoznam neuvádza, kde v URI sa tieto znaky môžu vyskytovať.
Akýkoľvek iný znak musí byť kódovaný pomocou percentuálneho kódovania (%
hh
). Každá časť URI má ďalšie obmedzenia týkajúce sa toho, aké znaky musia byť reprezentované slovom s percentuálnym kódovaním.
Všetky platné znaky, ktoré možno použiť v URI (URL je typ URI), sú definované v RFC 3986.
Všetky ostatné znaky sa môžu použiť v URL za predpokladu, že sú najprv "URL Encoded". To zahŕňa zmenu neplatného znaku na špecifické "kódy" (zvyčajne vo forme symbolu percenta (%), za ktorým nasleduje hexadecimálne číslo).
Tento odkaz HTML URL Encoding Reference obsahuje zoznam kódovaní neplatných znakov.
Nie je to odpoveď na vašu otázku, ale overovanie url's je naozaj vážne p.i.t.a Pravdepodobne je lepšie overiť len názov domény a ponechať časť url s dotazom. To je moja skúsenosť. Mohli by ste sa tiež uchýliť k pingu na url a zistiť, či je výsledkom platná odpoveď, ale to by mohlo byť príliš veľa na takú jednoduchú úlohu.
Regulárnych výrazov na zisťovanie url's je veľa, vygooglite si to :)