webForumDet fria alternativet

eregi snabbförklaring?

2 svar · 306 visningar · startad av Sjodahl

SjodahlMedlem sedan maj 20033 218 inlägg
#1

Hej!

Är med på vad eregi gör men när jag sett ett par exempel så tappar jag bort mig.

ex: vad händer här igentligen?

(eregi("^[a-z0-9]+([_\.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\.[a-z]{2,}$", $epost))

Antar jag kollar så att det bara är småbokstäver a-z och siffror 0-9. Och returnerar en 1a om fallet är så ?

eregi("^[a-z0-9]+$", $username))

Men inte rikigt med på vad "^" och +$ gör ?

GeinMedlem sedan sep. 20005 700 inlägg
#2

Här kan du hitta alla regexp-regler så kanske du lättare kan tyda ditt reguljära uttryck.

^ matchar början av strängen. Sen ska ett antal bokstäver a-z eller 0-9 förekomma, minst en bokstav eller siffra (enligt +).
[ ] - klamrar matchar något tecken inom klamrarna. I detta fall är det alltså a-z eller 0-9.
+ säger att vi ska ha minst en träff (eller fler).
( ) - matchar något av de block som finns inom paranteserna. Dvs i detta fall antingen _ . eller - (OBS att . är en matchningsregel, för att matcha . som ett tecken så krävs alltså att man skriver \.), eller minst ett tecken av a-z 0-9.
Och denna ( ) gruppering får förekomma * gånger, dvs, 0 eller fler.
Efter detta ska ett @-tecken förekomma. Sedan kan du nästan lista ut resten själv eftersom det ser nästan likadant ut.
{2,} säger att föregående grupp/tecken ska förekomma minst 2 ggr.
$ matchar slutet av strängen.

Sjodahl skrev:

Men inte rikigt med på vad "^" och +$ gör ?

+$ är alltså inte en regel utan två. + är en regel i sig och $ en annan.

SjodahlMedlem sedan maj 20033 218 inlägg
#3

Tackar..

126 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)