Avatar billede zulu Nybegynder
04. april 2003 - 16:59 Der er 16 kommentarer og
1 løsning

Validering af e-mail

Hvordan får jeg dette valideringsscript til at validere en e-mail med to punktummer efter snabela (fx navn@hej.der.dk)?


<Script language="JavaScript">
function valider()
{
var objMail = document.all["mail"].value;
//-----------------------------------------
    snabela = objMail.indexOf("@");
    brugernavn = objMail.substring(0,snabela);
//-----------------------------------------------------------------
    dot = objMail.indexOf(".");
    snabela += 1
    domain = objMail.substring(snabela,dot);
//-----------------------------------------------------------------
    dot += 1
    slut = objMail.length
    land = objMail.substring(dot,slut);
//-----------------------------------------------------------------

  if(brugernavn.length>0 && domain.length>0 && land.length>0 && land.length<=3)
          {
          return true;
          }
            else
                {
                  window.alert("E-mailadressen er ugyldig!");
                  return false;
                }

}
</Script>
Avatar billede martex Nybegynder
04. april 2003 - 17:02 #1
Jeg ved ikke hvordan man gør i en email, men du kan give det videre via ICQ eller sådan noget.
Avatar billede martex Nybegynder
04. april 2003 - 17:03 #2
Ups. Jeg tror jeg misforstod spørgsmålet....
Avatar billede zulu Nybegynder
04. april 2003 - 17:03 #3
Jeg har en formular, som skal validere e-mailfeltet. Der skal være to punktummer efter snabela'et.
Avatar billede Slettet bruger
04. april 2003 - 17:07 #4
Sådan her:

<html>
<head>
<script>
function valider(frm) {
  if (!frm.mail.value.match(/^[a-z0-9_\.]+@[a-z0-9_\.]+\.\w{2,3}$/i)) {
    alert("Fejl!");
    return false;
  }
  return true;
}
</script>
</head>
<body>
<form onSubmit="return valider(this);">
<input type="text" name="mail"><br>
<input type="submit" value="Send">
</form>
</body>
</html>
Avatar billede zulu Nybegynder
04. april 2003 - 17:21 #5
Hmm, den vil ikke godtage denne linie:

function valider(frm) {
Avatar billede zulu Nybegynder
04. april 2003 - 17:26 #6
Sådan ser den fejlagtige form og script ud:

I HEAD:

<script>
function valider(frm) {
  if (!frm.mail.value.match(/^[a-z0-9_\.]+@[a-z0-9_\.]+\.\w{2,3}$/i)) {
    alert("Fejl! E-mailadressen er ugyldig.");
    return false;
  }
  return true;
}
</script>

I BODY:

<FORM onSubmit="return valider(this);">

<font color="#000000">E-mail:<BR> </font>
<INPUT TYPE="text" ID="mail" NAME="E-mail" size="40"><BR><BR>

<font color="#000000">For- og efternavn:<BR>
<INPUT TYPE="text" NAME="Navn" size="40"><BR><BR>

<font color="#000000">Stilling:<BR> </font>
<INPUT TYPE="text" NAME="Stilling" size="40"><BR><BR>

<font color="#000000">Virksomhed/organisation:<BR>
<INPUT TYPE="text" NAME="Organisation" size="40"><BR><BR>

<font color="#000000">Evt. spørgsmål eller kommentar:<BR>
<TEXTAREA NAME="Spørgsmål eller kommentar" rows="3" cols="31"></TEXTAREA><BR>
</font>
<INPUT TYPE="submit" VALUE="Tilmeld"><font color="#000000"> <input type="reset" name="reset" value="Slet felter"></font>
</FORM>
Avatar billede olebole Juniormester
07. april 2003 - 11:23 #7
<ole>

I din funktion skal du referere til input-elementets name-attribut ... ikke dens id. Nu forsøger du at referere til 'frm.mail' - det er forkert.

Desuden skal du nok rette {2,3} til {2,4} - så også 'bla@bla.info' også validerer korrekt  ;o)

/mvh
</bole>
Avatar billede lone_a_p Praktikant
07. april 2003 - 11:52 #8
Der er en funktion i javascript, der hedder split.

Den splitter en string til at være et array

Eks.
s = Split("email@eu.hj.dk", ".") vil returnere

s(0) = "email@eu"
s(1) = "hj"
s(2) = dk

Du kan så feks først splitte på "@" så har du teksten efter @ og kan tjekke for flere punktumer.
Avatar billede olebole Juniormester
07. april 2003 - 12:08 #9
lone_a_p >> Men skal du lave en validering med split(), der bare kommer i nærheden af det script, der er vist højere oppe, skal du ud i en meget stor kode  :)
/mvh
Avatar billede zulu Nybegynder
07. april 2003 - 13:38 #10
Jeg forstår ikke helt jeres kildekodesprog. I øjeblikket har jeg denne form. Hvordan får jeg den til at validere og godtage et punktum før @ og to punktummer efter @? Det er f.eks. e-mailadressen: fornavn.efternavn@bla.bla.dk

I HEAD:

<Script language="JavaScript">
function valider()
{
var objMail = document.all["mail"].value;
//-----------------------------------------
    snabela = objMail.indexOf("@");
    brugernavn = objMail.substring(0,snabela);
//-----------------------------------------------------------------
    dot = objMail.indexOf(".");
    snabela += 1
    domain = objMail.substring(snabela,dot);
//-----------------------------------------------------------------
    dot += 1
    slut = objMail.length
    land = objMail.substring(dot,slut);
//-----------------------------------------------------------------

  if(brugernavn.length>0 && domain.length>0 && land.length>0 && land.length<=3)
          {
          return true;
          }
            else
                {
                  window.alert("E-mailadressen er ugyldig!");
                  return false;
                }

}
</Script>

I BODY:
<FORM ACTION="en-form-jeg-har-fra-freebieweb.dk"
METHOD="post" onSubmit="if(!valider())return false;">

<font color="#000000">E-mail:<BR> </font>
<INPUT TYPE="text" ID="mail" NAME="E-mail" size="40"><BR><BR>

<font color="#000000">For- og efternavn:<BR>
<INPUT TYPE="text" NAME="Navn" size="40"><BR><BR>

<font color="#000000">Stilling:<BR> </font>
<INPUT TYPE="text" NAME="Stilling" size="40"><BR><BR>

<font color="#000000">Virksomhed/organisation:<BR>
<INPUT TYPE="text" NAME="Organisation" size="40"><BR><BR>

<font color="#000000">Evt. spørgsmål eller kommentar:<BR>
<TEXTAREA NAME="Spørgsmål eller kommentar" rows="3" cols="31"></TEXTAREA><BR>
</font>
<INPUT TYPE="submit" VALUE="Tilmeld"><font color="#000000"> <input type="reset" name="reset" value="Slet felter"></font>
</FORM>
Avatar billede olebole Juniormester
07. april 2003 - 13:52 #11
Brug den anden ... den er langt bedre:

<script type="text/JavaScript">
function valider(frm) {
  if (!frm.e_mail.value.match(/^[a-z0-9_\.]+@[a-z0-9_\.]+\.\w{2,3}$/i)) {
    alert("Fejl!");
    return false;
  }
  return true;
}
</script>

<form onsubmit="return valider(this)">
    <input type="text" name="e_mail">
    <button type="submit">Send</button>
</form>

Læg mærke til, jeg har ændret dit 'name' på e-mail-feltet ... bindestreger er en rigtig dårlig idé til names.
/mvh
Avatar billede olebole Juniormester
07. april 2003 - 13:53 #12
Oooops .... så ret lige 3-tallet til et 4-tal:

  if (!frm.e_mail.value.match(/^[a-z0-9_\.]+@[a-z0-9_\.]+\.\w{2,3}$/i)) {
Avatar billede olebole Juniormester
07. april 2003 - 13:53 #13
*LooooL* - sådan:

  if (!frm.e_mail.value.match(/^[a-z0-9_\.]+@[a-z0-9_\.]+\.\w{2,4}$/i)) {
Avatar billede zulu Nybegynder
07. april 2003 - 14:50 #14
Tak for det. Jeg lukker. Hvor mange punktummer accepterer scriptet nu - før og efter snabela?
Avatar billede zulu Nybegynder
07. april 2003 - 14:51 #15
a.b.c.j@bla.bla.bla.dk
Avatar billede zulu Nybegynder
07. april 2003 - 14:52 #16
olebole, jeg kan ikke give dig points, før du angiver et "svar" i stedet for en "kommentar".
Avatar billede olebole Juniormester
07. april 2003 - 17:25 #17
:)
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