Søger du en specifik kategori?

 



Oprettet tor. d. 05. februar 2009 kl. 11:04

limemedia
Guidens karaktér
1
2
3
4
5

Validering af email adresse via JavaScript

Funktion og beskrivelse til simpel validering af emailadresse, indtastet via formular på en hjemmeside.
Som udvikler/designer af hjemmesider, står man ofte med en formular indeholdende feltet email adresse, dette kunne være i forbindelse med brugerprofiler, indkøbskurve, nyhedsbreve med mere. Hvad man ikke ønsker, er tilfældige indtastninger fra brugere der enten ved en fejl indtaster forkert, eller ikke ønsker at indtaste feltet.

Hvad man kan gøre, er at tilføje en lille JavaScript funktion der validerer gyldigheden af email adressens formatering (ikke om denne reelt eksisterer). Klassikeren er, at kigge om der eksisterer et @ i linien, hvor følgende regulære ekspression tager skridtet videre og undersøger adressen sammenlignet med en bredere formatering, for at undgå de allernemmeste snyde emails.

Funktionen man kan bruge ser således ud

<script language="JavaScript1.2" type="text/javascript">
<!--
    function verifyemail_check(str) {
        if(!str.match(/^[\w]{1}[\w\.\-_]*@[\w]{1}[\w\-_\.]*\.[\w]{2,6}$/i)) {
            return false;
        } else {
            return true;
        }
    }
//-->
</script>


Hvis vi ønsker at koble denne på en formular, kan følgende eksempel anvendes - via onSubmit på formelementet, kan vi ved submit af formularen køre funktioner der validerer brugerens input.

Formular eksempel, der inkluderer funktionskaldet på onSubmit - jeg anvender her en anden funktion end ovenstående, da jeg samtidig gerne vil lave fejlhåndtering for brugeren

<form action="do_something.ext" name="demoform" onSubmit="return validate_form();">
Navn : <input type="text" name="name"><br>
E-mail : <input type="text" name="email"><br>
<input type="submit" name="submit" value="udfør">
</form>


Min udvidede valideringsfunktion kunne så se således ud

<script language="JavaScript1.2" type="text/javascript">
<!--
    function verifyemail_check(str) {
        if(!str.match(/^[\w]{1}[\w\.\-_]*@[\w]{1}[\w\-_\.]*\.[\w]{2,6}$/i)) {
            return false;
        } else {
            return true;
        }
    }

    function validate_form(form) {
        if (!form.name.value.length > 0) {
            alert("Du glemte at indtaste dit navn !");
            form.name.focus();
            return false;
        }

        if (!verifyemail_check(form.email.value)) {
            alert("Den indtastede email er ikke gyldig !");
            form.email.focus();
            return false;
        }

        return true;
    }
//-->
</script>


Således kunne et simpelt valideringsscript se ud - det er vigtigt at forstå dette ikke 100% sikrer data i systemet, men man undgår de værste fejlindtastninger fra brugeren. Systemet kan relativt nemt omgås og bagvedliggende systemer bør tage højde for, at data herfra ikke er 100% sikre.

Koden er taget fra http://www.ljweb.com/ (...) hvor koden vedligeholdes og nyeste version være tilgængelig.

/ LJ

Skrevet ons. d. 14. januar 2004 kl. 13:08| #1


Skrevet tor. d. 15. januar 2004 kl. 13:33| #2

sandbox (50.355 point)
God artikel, men en lidt for restriktiv regex. Min emailadresse til Eksperten-post ville ikke blive godkendt.

Skrevet tor. d. 15. januar 2004 kl. 15:36| #3

googolplex (33.718 point)
God artikel :)

Skrevet søn. d. 24. oktober 2004 kl. 16:08| #4

talrinys (11.903 point)
Jeg er normalt lidt påpasselig med email validering via javascript, da jeg tit får nogle helt fine email addresser nægtet, men det er sikkert godt for nogen, og artiklen forklarer det godt.

Skrevet søn. d. 24. juli 2005 kl. 03:05| #5

roenving (328.334 point)
Fint med en artikel, som ikke gør mere ud af det, end der er behov for ...  Dog må jeg gøre opmærksom på, at det regulære udtryk går langt ud over den gældende standard for email-adresser (som sandbox også gør opmærksom på !-), da _ingen_ udover den originale host må beskæftige sig med det, som findes foran @-tegnet (rfc 2821 http://www.faqs.org/ (...), stk. 2.3.10 Mailbox and Address !-) Iøvrigt er konstruktionen [w]{1} === w ...

Skriv en kommentar



Mest populære guides

Guidens karakter
!!!Karaktér: 3
14 stemmer
31/01 - 2011
Af: heinzdmx

Dropbox - gratis online lagerplads

Jeg vil i denne guide forklare lidt om hvad Dropbox er og også hvordan du får mest mulig plads på Dropbox. Dropbox er kort sagt en service hvor du har dine data lagt til backup på både nettet og din egen computer.
Guidens karakter
!!!Karaktér: 4
33 stemmer
02/02 - 2009
Af: jkrons

Dato- og tidsberegninger i Excel

En introduktion til simple beregninger med dato og tid i Excel. Opdateret med afsnit om beregning af tillæg.
Excel  |  Læs »
Guidens karakter
!!!Karaktér: 4
21 stemmer
06/11 - 2011
Af: fromsej

Sådan fjerner du virus og malware

Udviklingen går stærkt på "skidt"fronten, så vi har sammensat en ny og effektiv programpakke til fjernelse af det.
Virus  |  Læs »

Log ind

   

   



   




Tips & Tricks fra PC World

Teaser billede

Top 5: Virale YouTube-videoer fra Danmark

Lægger du mærke til de mere eller mindre skjulte reklamebudskaber, når du ser videoer på nettet? Vi har taget et kig på fem utrolige danske videoer, som er blevet virale hit.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan fupper smarte svindlere dig på Facebook

Se hvordan du undgår Facebook-fup i fremtiden.


Nyheder fra Computerworld

Teaser billede

App-udvikling 2.0: Sådan er den perfekte app

ComputerViews: Den værste app-hype er ved at have lagt sig, og nu ser vi konturerne af fremtidens app-design. Men hvordan udnytter man de mobile muligheder optimalt?


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger