26. november 2006 - 17:39
Der er
3 kommentarer og
1 løsning
To undtagelser i regular expression?
Hej Alle!
Jeg har følgende regular expression i min validering, men hold op hvor er jeg dårlig til regular expressions.
Er der nogle der lige ved hvordan jeg laver de to understående undtagelser i sætningen?
- Sætning må ikke indeholde mere end ét @
- Sætning må ikke indeholde mellemrum
var filter = /^.+@.+\..{2,3}$/;
Hjælpen er meget værdsat :)
26. november 2006 - 17:47
#1
Hvis vi KUN tager de to ting du skrev er det som herunder:
var filter = /^[^\s@]+@[^\s@]+$/;
Denne dækker i øvrigt alle former for whitespace, ikke kun mellemrum. Hvis du kun vil fjerne muligheden for netop mellemrum, skriver du et mellemrum i stedet for \s.
Hvis vi også skal have TLD-validering med bliver det som følger (lidt forbedret, da der ikke er tal i et TLD):
var filter = /^[^\s@]+@[^\s@]+\.[a-z]{2,3}$/i;
Men da der findes TLD'ere der er på mere end 3 tegn (.info, .name, .museum...), bør den være som følger for at tage alle med:
var filter = /^[^\s@]+@[^\s@]+\.[a-z]{2,6}$/i;
Husk desuden at validering helst skal foretages server-side, da det er forholdsvist simpelt at omgå client-side validering :)
26. november 2006 - 18:00
#2
Pidgeot, det er bare pissegodt er det :)
Jeg laver selvfølgelig også serverside validering, men jo mindre jeg kan belaste serveren jo bedre, så derfor er det jo herligt at have en "næsten" skudsikker clientside validering :)
Tusinde tak for hjælpen.. Og du må rigtig gerne ligge et svar..