simenss Skrevet 2. mai 2007 Del Skrevet 2. mai 2007 Jeg holder for øyeblikket på med en funksjon som sjekker oppgitt data fra skjema. I den anledning ønsker jeg å finne et regulært uttrykk som "godkjenner" alle mulige e-post adresser. Jeg har lest litt på Wikipedia at e-post adresser kan inneholde: * Uppercase and lowercase letters (case sensitive) * The digits 0 through 9 * The characters ! # $ % & ' * + - / = ? ^ _ ` { | } ~ * The character . provided that it is not the first or last character in the local-part. Er dette tilfellet? Og hva med domenet i adressen? Hvordan får jeg godkjent f.eks. eksempel@båt.no og andre domener med slike spesialtegn? Lenke til kommentar
Mats Danielsen Skrevet 2. mai 2007 Del Skrevet 2. mai 2007 Jeg bruker vanligvis denne: ^[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+@[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+\.[^@ ()$#><;*%?&+='\{}æøåÆØÅ\.]+$ Lenke til kommentar
simenss Skrevet 2. mai 2007 Forfatter Del Skrevet 2. mai 2007 (endret) Jeg bruker vanligvis denne: ^[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+@[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+\.[^@ ()$#><;*%?&+='\{}æøåÆØÅ\.]+$ 8524528[/snapback] Om brukeren er svensk og har adressen eksempel@ödelig.se vil brukeren ikke kunne registrere seg med e-post adressen sin. Ser også at den tillater [^@ ()$#><;*%?&+='\{}æøåÆØÅ\.] etter siste punktum. Man kan vel ikke ha en andresse som [email protected]%m? Endret 2. mai 2007 av simenss Lenke til kommentar
MsFoster Skrevet 3. mai 2007 Del Skrevet 3. mai 2007 Det er ingen måte å sikre seg 100% for at en email faktisk eksisterer, så sant man ikke krever svar fra den. Det jeg gjør er å sjekke at den har et gyldig format: [email protected]. Validerer mailen denne sjekken, så sendes det en aktiveringsnøkkel til mailen. Lenke til kommentar
simenss Skrevet 3. mai 2007 Forfatter Del Skrevet 3. mai 2007 Det er ingen måte å sikre seg 100% for at en email faktisk eksisterer, så sant man ikke krever svar fra den. Det jeg gjør er å sjekke at den har et gyldig format: [email protected]. Validerer mailen denne sjekken, så sendes det en aktiveringsnøkkel til mailen. 8527853[/snapback] Da bruker vi samme metode Jeg ønsker ikke å validere om e-posten finnes, men om brukeren har brukt riktig format. Jeg trenger et regulært uttrykk som godkjenner alle e-post adresser som kan eksistere. Lenke til kommentar
BigJackW Skrevet 3. mai 2007 Del Skrevet 3. mai 2007 (endret) Jeg har brukt denne: PHP <?php $epost = "[email protected]"; if ( eregi("[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*.[a-z]{2,4}", $epost) ) { echo "Valid e-postadresse"; } else { echo "Ikke valid e-postadresse"; exit; } ?> Endret 3. mai 2007 av BigJackW Lenke til kommentar
simenss Skrevet 3. mai 2007 Forfatter Del Skrevet 3. mai 2007 Jeg har brukt denne: [0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*.[a-z]{2,4} 8529019[/snapback] Dette uttrykket vil jo ikke godkjenne norske adresser som eksempel@båt.no. Lenke til kommentar
BigJackW Skrevet 3. mai 2007 Del Skrevet 3. mai 2007 Er vel de færreste som har æ, ø og å i domenet? Lenke til kommentar
simenss Skrevet 3. mai 2007 Forfatter Del Skrevet 3. mai 2007 (endret) Er vel de færreste som har æ, ø og å i domenet? 8529047[/snapback] Er ikke bare æ, ø og å, men også andre internasjonale tegn som β, ä, ö etc. Det er dumt å nekte brukere å registrere seg fordi de har en litt "uvanlig" e-post adresse. Endret 3. mai 2007 av simenss Lenke til kommentar
BigJackW Skrevet 3. mai 2007 Del Skrevet 3. mai 2007 Er det en stor side det er snakk om da? Lenke til kommentar
simenss Skrevet 3. mai 2007 Forfatter Del Skrevet 3. mai 2007 Er det en stor side det er snakk om da? 8529942[/snapback] Så stor at tema er aktuellt Lenke til kommentar
MsFoster Skrevet 3. mai 2007 Del Skrevet 3. mai 2007 (endret) Hei, endelig hjemme fra jobb. Gjorde et lite forsøk på det du ønsket: PHP <?php $expression = '/[a-zA-Z0-9øæåØÆÅ!#$%&`{|}~]+[@]{1}[a-zA-Z0-9æøå]+[.]{1}[a-zA-Z0-9æøå]/'; $email = array('[email protected]','æøå123@hællo.nå','arnæAz_123-å@håttmail.no','æåø123ÆØÅ{-_|@jaha123Aæ.no'); $numMails = count($email)-1; $x = 0; while($x < $numMails+1) { if(preg_match($expression,$email[$x])) { echo "nr ".($x+1)." av ".($numMails+1)." godkjent<br />"; } $x++; } ?> Denne gir at alle emailen er gyldige. Kun testet veldig raskt, så du får si fra hvis den ikke oppfører seg slik du ønsker Edit: endret uttrykket litt Endret 3. mai 2007 av MsFoster Lenke til kommentar
simenss Skrevet 4. mai 2007 Forfatter Del Skrevet 4. mai 2007 (endret) Hei, endelig hjemme fra jobb.Gjorde et lite forsøk på det du ønsket: PHP <?php $expression = '/[a-zA-Z0-9øæåØÆÅ!#$%&`{|}~]+[@]{1}[a-zA-Z0-9æøå]+[.]{1}[a-zA-Z0-9æøå]/'; $email = array('[email protected]','æøå123@hællo.nå','arnæAz_123-å@håttmail.no','æåø123ÆØÅ{-_|@jaha123Aæ.no'); $numMails = count($email)-1; $x = 0; while($x < $numMails+1) { if(preg_match($expression,$email[$x])) { echo "nr ".($x+1)." av ".($numMails+1)." godkjent<br />"; } $x++; } ?> Denne gir at alle emailen er gyldige. Kun testet veldig raskt, så du får si fra hvis den ikke oppfører seg slik du ønsker Edit: endret uttrykket litt 8532071[/snapback] Takk for forsøket, men det hjelper meg ikke med å godkjenne alle mulige adresser som inneholder andre internasjonale tegn som ö, ä, β etc. Har kommet frem til at siden det kanskje er en umulig (og kanskje unødvendig) oppgave å kartlegge alle internasjonale tegn som kan benyttes, bruker jeg følgende uttrykk: preg_match("/^(.*?){2,64}@(.*?){2,59}.[a-z]{2,4}$/", $email) EDIT: Brukeren må selvfølgelig bekrefte e-post adressen for å fullføre registreringen Endret 4. mai 2007 av simenss Lenke til kommentar
MsFoster Skrevet 4. mai 2007 Del Skrevet 4. mai 2007 Hei, dersom flere tegn ønskes så legges dette til inni [], men som sagt, slik jeg fortalte deg i første post, og som du nå bestemte deg for, er beste metoden for å sørge for at det faktisk er en seriøs registrering med eksisterende email. Lykke til Lenke til kommentar
j-- Skrevet 6. mai 2007 Del Skrevet 6. mai 2007 Vil bare tipse om at det skal være lovlig ifølge RFCen å ha mellomrom i mailen sin. "jonas lindstad"@host.tld skal være gyldig, selv om det er veldig sjeldent Lenke til kommentar
loathsome Skrevet 6. mai 2007 Del Skrevet 6. mai 2007 Slik ser min formel ut: *@*.* I mine øyne er det mer en nok validering. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå