Avatar billede thr Nybegynder
02. marts 2002 - 20:28 Der er 21 kommentarer og
1 løsning

Validering af email addresse i form

Jeg har en form, som skal sende en mail.

Jeg mangler et lille javascript der tester om den indtastede email har den rette syntaks (xx@xx.xx)

scriptet skal foretage valideringen og hvis det tester ok, skal det submitte.

( Det skal være JScript, men hvis der er nogen der kan lave det i VBScript også, så vil jeg gerne se det.)

Mvh.
/thr
Avatar billede elkrog Nybegynder
02. marts 2002 - 20:44 #1
Prøv og se her, de har noget om validering af email:
http://www.html.dk/scripts/javascript/00019/
Avatar billede tipsen Nybegynder
02. marts 2002 - 23:38 #2
Følgende validerer syntaksen for en email:

var emailregexp = /^([A-Z]+)([A-Z0-9_\.\-]+)@([A-Z0-9]+)([.,_,-]([A-Z0-9]+))*\.[A-Z]{2,4}$/i

function ValidateEmail(str) {
  if(!emailregexp.test(str)) {
    return false;
  }
  else document.forms[0].submit();
}

I formularen skal der laves en onsubmit, som kalder ValidateEmail(.)
Avatar billede cyber-kox Nybegynder
03. marts 2002 - 10:55 #3
Her er også en:
Du skal bruge et Javascript, og det ser således ud:
<SCRIPT TYPE="text/javascript" SRC="Skript/hklikmenu.js">
function emailcheck(cur)
{
var string1=cur.Email.value
if(string1.indexOf("@")==-1)
{
alert("Forkert email adresse!")
return false
}
}
</SCRIPT>
og i formen, hvor Feltet Email skal være skriver du:
<input type="text" name="Email">
Så virker det.
--------------------------------------------------
Med Cyber'sk Hilsen
Cyber Kox
webmaster@cyber-kox.zzn.com
www.cyber-kox.subnet.dk
Avatar billede thr Nybegynder
03. marts 2002 - 13:49 #4
-->cyberkox, chekker den selv når man trykker submit?
Avatar billede cyber-kox Nybegynder
03. marts 2002 - 17:17 #5
Ja, det gør den. Når du trykker på Submitknappen uden at skrive "@" i Email feltet, kommer der der en boks op, hvor der står:
"Forkert email adresse!"
--------------------------------------------------
Med Cyber'sk Hilsen
Cyber Kox
webmaster@cyber-kox.zzn.com
www.cyber-kox.subnet.dk
Avatar billede tipsen Nybegynder
03. marts 2002 - 19:39 #6
cyber-kox: Du bliver nødt til at have noget ekstra kode for at få respons fra dit javascript! Tester du ikke også kun om der er et '@' i emailadressen? (Dvs email="@@@@@@@@" er helt gyldig...)

Følgende kode sættes som start i din formular - dvs. "onsubmit..." skal sættes ind i dine allerede eksisterende form-tags - og det antages at du har kaldt dit email-felt for "email"!

<form action="der der står i forvejen" method="der der står i forvejen" onsubmit="return validateEmail(document.forms[0].email.value)">

Sammen med denne JavaScript funktion testes hele emailens syntaks jvf. gældende standard for emailopbygning vha. en regular expression - mere korrekt bliver det ikke uden eksempelvis en test for om domænenavnet rent faktisk eksisterer!

var emailregexp = /^([A-Z]+)([A-Z0-9_\.\-]+)@([A-Z0-9]+)([.,_,-]([A-Z0-9]+))*\.[A-Z]{2,4}$/i

function ValidateEmail(str) {
  if(!emailregexp.test(str)) {
    return false;
  }
  else document.forms[0].submit();
}

Nemmere bliver det ikke...

--tipsen--
Avatar billede tipsen Nybegynder
03. marts 2002 - 19:42 #7
Du bør egentlig sætte en

alert("\"" + str + "\" is not a valid emailaddress!");
document.forms[0].email.focus();
document.forms[0].email.select();

i linien over "return false" - så brugeren får en besked og email-feltet får fokus igen!
Avatar billede thr Nybegynder
03. marts 2002 - 20:06 #8
Den der laver et komplet script får point ( Ink. det der skal stå i formen )
Avatar billede elkrog Nybegynder
03. marts 2002 - 20:08 #9
Hvor meget hæver du så dine points til ?
Avatar billede thr Nybegynder
03. marts 2002 - 20:14 #10
hvormange vil du have? 200? gør man det med avanceret??
Avatar billede elkrog Nybegynder
03. marts 2002 - 20:19 #11
Der er vist et eller andet punkt der hedder "afsæt flere points"
Avatar billede thr Nybegynder
03. marts 2002 - 20:24 #12
jeg laver et spørgsmål på 140p kaldet elkrog, så besvarer du begge ok??
Avatar billede thr Nybegynder
03. marts 2002 - 20:26 #13
function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}


function validering()
  {
  error = 0;

  placering=0;
  tekst=(document.forms[0].email.value).toLowerCase();
  placering=tekst.indexOf("@");
  if(tekst ==""){
    alert ("Please enter your e-mail address !");
    error = 1;
  }
  else{
    tegn=tekst.indexOf(" ");
    if(tegn!=-1){
      alert ("Your e-mail is invalid, no spaces allowed !");
      error = 1;
    }
    else{
      if (tekst.indexOf("æ")!=-1 || tekst.indexOf("ø")!=-1 || tekst.indexOf("å")!=-1 ||
        tekst.indexOf("Æ")!=-1 || tekst.indexOf("Ø")!=-1 || tekst.indexOf("Å")!=-1 ||
        tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1){
        alert ("Der er ulovlige tegn i adressen. Må ikke indeholde: æ ø å Æ Ø Å , ;");
        error = 1;
      }
    else{
      if (placering<1 || tekst.length<=(placering+1)){
        alert ("Your e-mail address is invalid !!");
        error = 1;
      }
    }
  }
}
if(error == 0)
document.forms[0].submit();   
}
//-->
</script>
Avatar billede elkrog Nybegynder
03. marts 2002 - 20:30 #14
Det er fint nok med de 60 du har afsat.
Jeg har et script et sted, vender tilbage lidt senere..
Avatar billede thr Nybegynder
03. marts 2002 - 20:33 #15
Tip top
Avatar billede tipsen Nybegynder
03. marts 2002 - 21:31 #16
thr: Hvad er det lige præcis ved mit script du ikke forstår? Indtil videre er der ikke postet noget som laver et bedre check end det jeg har angivet...
Avatar billede elkrog Nybegynder
03. marts 2002 - 21:36 #17
Denne her checker for:

Om feltet er tomt.
Ugyldige tegn: /:,; (find selv på flere)
At der er 1 @.
At der kun er 1 @.
At der er mindst 1 punktum efter @.
At der er mindst 2 tegn efter sidste punktum.

http://212.242.53.217/eksperten/spm180041.htm
Avatar billede tipsen Nybegynder
03. marts 2002 - 21:49 #18
...og stadig er @@.dk en gyldig adresse...
Avatar billede elkrog Nybegynder
03. marts 2002 - 21:52 #19
Ja, den ryger sgu igennem,
det havde jeg ikke set.
Avatar billede tipsen Nybegynder
03. marts 2002 - 22:13 #20
Prøv følgende: http://tommyipsen.dk/emailvalid.htm

Jeg vil gerne vide, hvis der er problemer med den - hvis der er - så for hvilke emailadresser! (Bruger den selv!)
Avatar billede elkrog Nybegynder
03. marts 2002 - 22:36 #21
tipsen>>

Den ser ud til at være fejlfri.

Hvad jeg godt kan lide ved min egen er at den checker
det forskellige og fortæller hvad der er galt.
I stedet for den samme alert hver gang.

Men jeg må se om jeg kan lukke @@.dk hullet (tak for oplysningen).
Avatar billede tipsen Nybegynder
03. marts 2002 - 22:58 #22
...jeg antager så, at en bruger der bliver præsenteret for sin indtastede emailadresse med en besked om at den er ugyldig kan se, hvad problemet måtte være...

-tak fordi du gad bruge tid på at teste den!

NB: Du kan evt. kontrollere om der er præcis ét @ i den indtastede adresse!
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