login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[REGEX] Email regex

Offline nick5556 - 04/03/2011 10:19
Avatar van nick5556PHP beginner Hallo,

Ik ben aan het oefenen met reguliere expressies maar ik kom er nu even niet uit.

String: yourname@doma%in.ext
Pattern: /\b[a-zA-Z0-9._-]+@[a-zA-Z0-9]+.[a-zA-Z]{2,4}\b/

Met deze string geeft hij een true terug.

6 antwoorden

Gesponsorde links
Offline Koen - 04/03/2011 10:24 (laatste wijziging 04/03/2011 10:24)
Avatar van Koen PHP expert En als je je punten (.) escapet? Voor zover ik weet staat een punt voor eender welk teken... 


PS: en wat doe je met .museum?
Offline Sam - 04/03/2011 10:36 (laatste wijziging 04/03/2011 10:37)
Avatar van Sam PHP expert
Koen schreef:
En als je je punten (.) escapet? Voor zover ik weet staat een punt voor eender welk teken... 


PS: en wat doe je met .museum?


Het eerste punt niet, het tweede wel:
/\b[a-zA-Z0-9._-]+@[a-zA-Z0-9]+\.[a-zA-Z]{2,4}\b/

En wie wilt er nu mensen met een .museum adres op zijn website?  
Offline Wim - 04/03/2011 19:03
Avatar van Wim Crew algemeen PHP.net: getmxrr vind ik persoonlijk interessanter. Je controleert dan of er effectief een e-mail server aan het domein gekoppeld is.

Een "ik@besta.niet" raakt wel door je regex, maar niet vooribj een controle m.b.v. getmxrr()

100% zeker ga je echter nog niet zijn, een email adres als "ikbestaniet@sitemasters.be" zal bvb wel door de controle raken omdat het domein sitemasters.be een mailserver aan zich gekoppeld heeft.
Offline Koen - 04/03/2011 19:37
Avatar van Koen PHP expert PHP.net: filter_var ?
Bedankt door: avdg
Offline nick5556 - 05/03/2011 17:50
Avatar van nick5556 PHP beginner Ik weet dat het veel gemakkelijker is door een PHP.net: filter_var te gebruiken, maar ik ben gewoon aan het oefenen met REGEX.

@wim: bedankt, dat wist ik nog niet.

Ik probeer nu een regex te maken voor een url, ik heb nu dit:
  1. /(htt|ft)+p(s)+:\/\/+www\.[a-zA-Z0-9.-]+\.[a-zA-Z]{2,5}/


Nu heb ik deze strings om te controleren:
  1. http://domein.nl/ retourneerd false
  2. https://domein.nl/ retourneerd false
  3. http://www.domein.nl/ retourneerd false
  4. https://domein.nl/ retourneerd true
  5. www.domein.nl retourneerd false
  6. domein.nl/ retourneerd false


Hoe zorg ik nou dat die allemaal true worden gezien behalve de laatste? Het is dus de bedoeling dat http:// en www. optioneel worden, maar er moet wel één van de twee aanwezig zijn.
Offline avdg - 06/03/2011 19:43
Avatar van avdg PHP gevorderde Ik denk dat je subdomeinen en ip's mist
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.208s