JavaScript - Regulární výrazy
Regulární výrazy se využívají ve chvíli, kdy chcete stanovit obecný formát nějakého řetězce. Můžete zjistit jestli jméno zadaného souboru končí na .txt
, nebo jestli je rodné číslo rozdělené na dvě části lomítkem.
Ověření e-mailové adresy
Jak ověřit, že návštěvník zadal e-mailovou adresu, která obsahuje @:
function over(){ inp=document.form.mail.value; mail=/@/ if (mail.test(inp)==true) window.alert("správný formát adresy"); else window.alert("špatně zadaná adresa") }
Zapsali jsme regulární výraz /@/, to znamená, že e-mail má obsahovat zavináč, před ním a po něm může následovat text. Takže výraz odpovídá řetězcům: auto@auto.ht, ale také auto@auto, dokonce auto@ a co je nejhorší dokonce i samotnému @. Je nutné zapsat, že kolem zavináče je povinný text.
mail=/.+@.+/
Znak .+
vyžaduje 1 nebo více znaků kromě nového řádku. Takže adresa může vypadat takto: auto@auto.cz, simon@simon.simon, v žádném případě auto@ , nebo jen @, avšak adresa stále může vypadat takto: auto@simon, tedy bez koncového určení přípony (cz, org, net, com, sk, uk atd.). Takže obecný formát adresy vlastně je: něco@něco.něco
. Stačí tedy doplnit tečku a libovolný text:
mail=/.+@.+\..+/
Ta první tečka spolu s lomítkem znamená, že výraz má obsahovat tečkz, druhá tečka patří ke znaku + a znamená tedy další text. Výraz odpovídá už jen něco@něco.něco
, ale stále odpovídá i simon@simon.simon
. Proto je třeba omezit délku posledního řetězce na 4 znaky (.cz, .com, .info).
Poslední +, které definovalo 1 a více, nahradíme intervalem, který definuje 2 až 4 znaky. Nutné je ještě výraz přesně ohraničit, kde má konec a kde začátek, k tomu slouží stříška a dolar (^,$).
mail=/^.+@.+\..{2,4}$/
Doufám, že nyní máte trochu představu, jak tyto výrazy fungují. Téměř stejně lze využít regulárních výrazů v PHP. Ukázka hotové skriptu:
Kontrola rodného čísla
function over(){ inp=document.form.rodne.value; vzor=/^[0-9]{6}\/[0-9]{4}$/ if (mail.test(inp)==true) window.alert("správný formát RČ"); else window.alert("špatně zadané RČ") }
[0-9] - číslice
{počet znaků}
[a-z] - malá písmena
[A-C] - A, B nebo C
Další: Jak zavést do skriptu náhodu - Random
Vyhledávání
Základy
Zajímavosti
DOM
Poradna
Pokud si nevíte rady, chcete kontakt na spolehlivého tvůrce webu, či vás zajímá cizí názor, ozvěte se.