Regulární výrazy v praxi

obrázek k článku Regulární výrazy v praxiJelikož nemám vůbec moc času na rozdávání, rozhodl jsem se napsat pouze kratičký článeček do kategorie programování, jelikož tato kategorie je dosti prázdná. V tomto článku nebudu mít moc času na vysvětlování jak jsem co posestavoval pouze výsledky, které můžete implementovat do svých stránek.

Komerční Reklama


Regulární výraz mými slovy je určitá sestava, jak by měl řetězec vypadat. Ti kteří toto neznají pod svým pravým názvem již možná samotnou funkci použili. Nejčastějším používáním je u SEO friendly URL respektive při editaci htacces.

Existují také jiný velice používaný způsob a to je oveřovat například zaslané formuláře, zda pole jako email jsou skutečně emailem. Známe spousty metod jak tuto věc řešit ale tato se zdá nejlepší.

if(ereg($regvyraz,$_POST['prvek']))
{
 echo "Odpovídá reg výrazu";
}
else
{
echo "Neodpovídá reg výrazu";
}


Tento kratičký script co jsem tu právě napsal je například pod php. Výhodou regulárních výrazů je ta, že se zažila prakticky do všech jazyků v naprosto stejné formě. Jediné co se mění jsou například funkce pro jejich ověření.

V podmínce máme dvě proměné. Proměná $_POST['prvek'] má představovat proměnou zaslanou například z nějakého toho formuláře, jedná se o proměnou, kterou budeme ověřovat zda odpovídá regulárnímu výrazu v proměné $regvyraz. Čili pro ty kterým to nedošlo jde tu jen o to dosadit nyní tu správnou věc pod proměnou $regvyraz.

Nyní přináším v rychlosti příklady, které po dosazení do proměné $regvyraz budou odpovídat různým parametrům. V několika málo následujících měsících se pokusíme v pokračování tohoto článku naučit vytvářet tyto jednotlivé regulární výrazy. Napřed zkuste tyto níže uvedené, abyste pochopili jednu z tisíce možností k čemu právě regulární výrazy jsou.

Telefoní číslo ve tvaru +420777777777 nebo 777777777

$regvyraz="^\+?[0-9]{9,12}$";


email

$regvyraz="^[_a-zA-Z0-9.-]+@[_a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$";


www stránka

$regvyraz="^((http:|https:)//[_a-zA-Z0-9.-]+.[a-zA-Z]{2,4}(/{1}[-_~&=?.a-z0-9]*)*)$";


ICQ

$regvyraz="^[0-9]{6,10}$";


DIČ

$regvyraz="^[a-zA-Z]{2}[0-9]{8,10}$";



$regvyraz="^[0-9]{8}$";


PSČ

$regvyraz="^[0-9]{5}$";


Jméno a příjmení

$regvyraz="^[a-zA-Z]+ [a-zA-Z]+$";


ulice č.p.

$regvyraz="^[a-zA-Z]+ ?[0-9]+";



Pokud Vám nějaký regulérní výraz chybý, klidně napište do komentářů, vymyslíme ho společně!

Komentáře (5) Programování vitek 11.11.2007 21:20

Ohodnoťte článek: Ohodnotit 1 bodyOhodnotit 2 bodyOhodnotit 3 bodyOhodnotit 4 bodyOhodnotit 5 bodyOhodnotit 6 bodyOhodnotit 7 body (hlasováno: 38×, průměr: 3.8)

MediaBlog.cz Jaggni to ! pošli na vybrali.sme.sk Linkuj si !


Komentáře

CrazyDog (anonym) - Dobre - 12.11.2007 18:10

avatarMáš to dobře napsané, ale www může být i ftp či jiné nesmysly jako je mms ap.

Komerční Reklama

anonym - - 13.11.2007 15:29

avatar

johny (anonym) - silné heslo - 20.11.2009 12:06

avatarchybí mi tu reg. výraz pro silné heslo... tzn. znaky malé, velké, číslice a třeba minimálně 8 znaku... takže např. Ab8cDEFg
nejprve jsem si říkal že to může být něco jako [a-zA-Z0-9]{8} ale tím nezajistim, aby byl každý znak (maly, velky, číslo) minimálně jednou ve výrazu

Lebus (anonym) - PSČ - 25.3.2010 15:35

avatarPro PSČ bych navrhoval lepší řešení:

^([0-9]{3})? ?([0-9]{2})$

Nikdy totiž nevíte, jestli uživatel chce zadat psč s mezerou nebo bez.

cdMcAifbGt (anonym) - TAzeEklm - 14.3.2011 13:19

avatarcMxF7f <a href="http://ucabtlehfbvf.com/">ucabtlehfbvf</a>, [url=http://jqcktuhvaokd.com/]jqcktuhvaokd[/url], bsbwdnxhvoqq, http://nllpeqrcwvmn.com/

Zobrazit všechny komentáře

Komentáře vyjadřují názory čtenářů. Provozovatel webu neodpovídá ani nenese žádnou zodpovědnost za jejich obsah.