Avatar billede dr_chaos Nybegynder
18. december 2003 - 08:29 Der er 6 kommentarer og
1 løsning

email validering

hej allesammen
jeg er igang med at lave en hjemmeside til et projekt på dtu. på denne side har vi en validering af e-mail:
        reg = /^\w{1}[\w\.\-]*@\w{1}[\w\-]*\.\w{2}\w*$/i;
        tekst=f.Email.value.toLowerCase();
        if (!reg.test(tekst)){
        alert ("Der skal stå en gyldig e-mail adresse i Email-feltet f.eks. test@test.com");
        f.Email.select();
        f.Email.focus();
        return false;
    }

den ligger i en funktion validering.
den virker fint hvis en bruger indtaster en e-mail som test@test.dk.
Men den kan ikke validere e-mailen hvis den har dette format:
sxxxxxx@student.dtu.dk
altså hvor der er 2 punktummer efter @.
Er der nogen som har et foreslag til hvordan dette problem kan løses ?
Avatar billede eagleeye Praktikant
18. december 2003 - 08:45 #1
Et par eksempler som også tager lidt mere med de lidt mre "vilde" udgaver:
http://www.js-examples.com/example/?ex=946&mode=1&COLOR_OFF=YES
http://javascript.internet.com/forms/check-email.html

Alternativt så prøv med denne:


function checkEmail(myForm) {
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(myForm.emailAddr.value)){
return (true)
}
alert("Invalid E-mail Address! Please re-enter.")
return (false)
}
Avatar billede dr_chaos Nybegynder
18. december 2003 - 09:38 #2
der er 100 mere hvis du kan hjælpe mig med at få det til at virke :)
min validerings kode ser sådan her ud:
<script type="text/javascript">
function validate_form ( )
{
var valid = true
        var reg1 = /^\w{6,}$/;
        var reg = /\d/g;
    if (!document.info.brugernavn.value.match(reg1)||!document.info.brugernavn.value.match(reg)||2>document.info.brugernavn.value.match(reg).length) {
        alert("Dit brugernavn skal bestå af mindst 6 tegn ...\n-- eller skal mindst indeholde 2 cifre!")
        f.brugernavn.select();
        f.brugernavn.focus();
        valid = false;
    }
    if(document.info.Fornavn.value == ''){               
        alert('Du skal skrive dit fornavn!');
        valid = false;
    }
    if(document.info.Efternavn.value == ''){
        alert('Du skal skrive dit efternavn');
        valid = false;
    }
    if(document.info.Adresse.value == ''){
        alert('Du skal skrive din adresse');
        valid = false;
    }
        reg = /\d{4}/g;
    if(!document.info.Postnr.value.match(reg)){
        alert('Du skal skrive dit postnummer');
        valid = false;
    }
    if(document.info.By.value == ''){
        alert('Du skal skrive din hjemby');
        valid = false;
    }
        reg = /\w{5}/
    if(!document.info.password.value.match(reg)) {
        alert('Du skal skrive et password på mindst 5 tegn');
        valid = false;
    }
  if(document.info.password1.value!=document.info.password.value) {
        alert('Du skal gentage dit password fuldstændigt nøjagtigt');
      valid = false;
    }
    return valid;
}
function emailCheck (emailStr) {
var checkTLD=0;
var knownDomsPat=/ ^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
alert("The Email Address Is Invalid");
return false;
}
var user=matchArray[1];
var domain=matchArray[2];
for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert("The Username Contains Invalid Characters.");
return false;
}
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
alert("Ths Domain Name Contains Invalid Characters.");
return false;
}
}
if (user.match(userPat)==null) {
alert("The Username Is Invalid.");
return false;
}
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {
for (var i=1;i<=4;i++) {
if (IPArray>255) {
alert("The Destination IP Address Is Invalid.");
return false;
}
}
return true;
}
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
alert("The Domain Name Is Invalid.");
return false;
}
}
if (checkTLD && domArr[domArr.length-1].length!=2 &&
domArr[domArr.length-1].search(knownDomsPat)==-1) {
alert("The Domain Name Extension Is Invalid");
return false;
}
if (len<2) {
alert("The Address Is Missing A Hostname.");
return false;
}
return true;
}

var counter=0;
function isReady() {
var _ret=false;
if (validate_form())
  _ret=true;
if(emailCheck(document.info.email.value))
  _ret=true;
else
  _ret=false;
if(_ret)
  if(counter++)
  {
    _ret=false;
    alert('The Form Is Already Being Submitted');
  }
  else
    _ret=true;
alert(_ret);
return _ret;
}


</script>


koden til formularen ser sådan her ud:
<form method="post" action="brugeroprettet.asp" name="form" ID="Form1" onSubmit="return(isReady())">
                                                <table ID="Table1">
                                                    <tr>
                                                        <td style="width: 200px">Brugernavn:</td>
                                                        <td style="width: 200px"><input type="text" name="brugernavn" maxlength="50" ID="Text11"></td>
                                                    </tr>
                                                    <tr>
                                                        <td style="width: 200px">Fornavn:</td>
                                                        <td style="width: 200px"><input type="text" name="Fornavn" maxlength="50" ID="Text1"></td>
                                                    </tr>
                                                    <tr>
                                                        <td>Efternavn:</td>
                                                        <td><input type="text" name="Efternavn" maxlength="50" ID="Text2"></td>
                                                    </tr>
                                                    <tr>
                                                        <td>Adresse:</td>
                                                        <td><input type="text" name="Adresse" maxlength="50" ID="Text3"></td>
                                                    </tr>
                                                    <tr>
                                                        <td>Postnr:</td>
                                                        <td><input type="text" name="Postnr" maxlength="4" ID="Text4"></td>
                                                    </tr>
                                                    <tr>
                                                        <td>By:</td>
                                                        <td><input type="text" name="By" maxlength="50" ID="Text5"></td>
                                                    </tr>
                                                    <tr>
                                                        <td>Fødselsdato:</td>
                                                        <td><input type="text" name="FoedseldatoDD" size="1" maxlength="2" ID="Text6">-<input type="text" name="FoedseldatoMM" size="1" maxlength="2" ID="Text7">-<input type="text" name="FoedseldatoAAAA" size="2" maxlength="4" ID="Text8"></td>
                                                    </tr>
                                                    <tr>
                                                        <td>Køn:</td>
                                                        <td><input type="radio" name="Koen" value="1" checked ID="Radio1">Mand<input type="radio" name="Koen" value="2" ID="Radio2">Kvinde</td>
                                                    </tr>
                                                    <tr>
                                                        <td>Firma:</td>
                                                        <td><input type="text" name="Firma" maxlength="50" ID="Text9"></td>
                                                    </tr>
                                                    <tr>
                                                        <td>Email:</td>
                                                        <td><input type="text" name="email" maxlength="255" ID="Text10"></td>
                                                    </tr>
                                                    <tr>
                                                        <td>Password:</td>
                                                        <td><input type="password" name="password" maxlength="50" ID="Password1"></td>
                                                    </tr>
                                                    <tr>
                                                        <td>Gentag password:</td>
                                                        <td><input type="password" name="password1" maxlength="50" ID="Password2"></td>
                                                    </tr>
                                                    <tr>
                                                        <td><input type="hidden" name="Brugerniveau" value="1" ID="Hidden1"></td>
                                                        <td><p class="right"><br>
                                                                <input id="button1" type="image" name="Image5" style="border:0" src="billeder/opretop.gif"></p>
                                                        </td>
                                                    </tr>
                                                </table>
                                            </form>


jeg har brugt dette eksempel her:
http://www.js-examples.com/example/?ex=946&mode=1&COLOR_OFF=YES
Avatar billede eagleeye Praktikant
18. december 2003 - 09:51 #3
PRøv med valid funktion sådan her


<cript type="text/javascript">
function validate_form ( )
{
var valid = true
        var reg1 = /^\w{6,}$/;
        var reg = /\d/g;
    if (!document.info.brugernavn.value.match(reg1)||!document.info.brugernavn.value.match(reg)||2>document.info.brugernavn.value.match(reg).length) {
        alert("Dit brugernavn skal bestå af mindst 6 tegn ...\n-- eller skal mindst indeholde 2 cifre!")
        f.brugernavn.select();
        f.brugernavn.focus();
        valid = false;
    }
    if(document.info.Fornavn.value == ''){               
        alert('Du skal skrive dit fornavn!');
        valid = false;
    }
    if(document.info.Efternavn.value == ''){
        alert('Du skal skrive dit efternavn');
        valid = false;
    }
    if(document.info.Adresse.value == ''){
        alert('Du skal skrive din adresse');
        valid = false;
    }
        reg = /\d{4}/g;
    if(!document.info.Postnr.value.match(reg)){
        alert('Du skal skrive dit postnummer');
        valid = false;
    }
    if(document.info.By.value == ''){
        alert('Du skal skrive din hjemby');
        valid = false;
    }
        reg = /\w{5}/
    if(!document.info.password.value.match(reg)) {
        alert('Du skal skrive et password på mindst 5 tegn');
        valid = false;
    }
  if(document.info.password1.value!=document.info.password.value) {
        alert('Du skal gentage dit password fuldstændigt nøjagtigt');
      valid = false;
    }
if (valid==false) {
  return valid;
}
emailStr = document.info.email.value;
var checkTLD=0;
var knownDomsPat=/ ^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
alert("The Email Address Is Invalid");
return false;
}
var user=matchArray[1];
var domain=matchArray[2];
for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert("The Username Contains Invalid Characters.");
return false;
}
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
alert("Ths Domain Name Contains Invalid Characters.");
return false;
}
}
if (user.match(userPat)==null) {
alert("The Username Is Invalid.");
return false;
}
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {
for (var i=1;i<=4;i++) {
if (IPArray>255) {
  alert("The Destination IP Address Is Invalid.");
  return false;
  }
}
return true;
}
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
alert("The Domain Name Is Invalid.");
return false;
}
}
if (checkTLD && domArr[domArr.length-1].length!=2 &&
domArr[domArr.length-1].search(knownDomsPat)==-1) {
alert("The Domain Name Extension Is Invalid");
return false;
}
if (len<2) {
  alert("The Address Is Missing A Hostname.");
  return false;
}
return true;
}

var counter=0;
function isReady() {
var _ret=false;
if (validate_form())
  _ret=true;
if(emailCheck(document.info.email.value))
  _ret=true;
else
  _ret=false;
if(_ret)
  if(counter++)
  {
    _ret=false;
    alert('The Form Is Already Being Submitted');
  }
  else
    _ret=true;
alert(_ret);
return _ret;
}


</script>
Avatar billede roenving Novice
18. december 2003 - 09:58 #4
/^\w{1}[\w\.\-]*@\w{1}[\w\-\.]*\.\w{2}\w*$/i;
Avatar billede dr_chaos Nybegynder
18. december 2003 - 10:05 #5
jeg kan se når jeg afvikler koden at der kommer en lille fejl nede i hjørnet men jeg kan ikke huske hvordan jeg slår fejlmeddelser til.
nogen ideer ?
men det nye virker heller ikke.
Avatar billede dr_chaos Nybegynder
18. december 2003 - 10:09 #6
fjollet mig...
havde glemt at omdøbe form name til info.
nu virker den ned til og med password validering
Avatar billede dr_chaos Nybegynder
18. december 2003 - 10:14 #7
skal lige lære at kigge ordentligt efter i den kode jeg bruger..
nu virker det som det skal :)
tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester