Avatar billede jette1 Nybegynder
19. august 2001 - 16:35 Der er 4 kommentarer og
1 løsning

Tjek af email adresse

Jeg har problemer med dette lille eksempel:

<SCRIPT language=JavaScript1.2>
  var x = \"jni@omnix.dk\";
  var pattern = new RegExp(\".+@.+\\..{2,3}\");
  var tjek = x.match( pattern );
  var y = tjek.length;
  document.write(y+\"<br>\");
  document.write(tjek[0]);
</SCRIPT>

Den brokker sig godt nok, hvis jeg fjerner @ i email adressen, men den matcher selvom jeg fjerner punktummet foran \"dk\" og det skulle den jo ikke.

Jeg forestiller mig at mit pattern virker på følgende måde:

.+    Én eller flere karakterer..
@      ..efterfulgt af snabela..
.+    ..efterfulgt af én eller flere karakterer..
\\.    ..efterfulgt af punktum..
.{2,3} ..efterfulgt af 2 eller 3 karakterer..

Hvad gør jeg forkert?
Avatar billede rfogh Nybegynder
19. august 2001 - 16:38 #1
Jeg kan ikke hjælpe dig med problemet, men der findes også 4-bogstavs toplevel-domæner... {2,3,4}
Avatar billede jakoba Nybegynder
19. august 2001 - 17:11 #2
Det eneste du rigtig mangler er

^    start ved begyndelsen
    og
$    slut ved slutningen af input

hvis vi tager rfoghs \'4-de bogstav i domæne\' med bliver det:

  var pattern = new RegExp(\"^.+@.+\\..{2,4}$\");

mvh JakobA
Avatar billede jakoba Nybegynder
19. august 2001 - 17:14 #3
Du kan evt \'forgylde liljen\' en smule ved fx at forbyde  . lige op ad @ og . og - aller-forrest eller -bagerst. Men til nogmal brug er det fint nok som den er.
Avatar billede jespernaur Nybegynder
19. august 2001 - 17:55 #4
Dit problem er at når du angiver en tekststreng inden i gåseøjne
har \'\\\' speciel betydning, hvilket medfører at dit regulære udtryk
ikke bliver det, du tror. Resultatet er, at det udtryk, du faktisk
bruger, bliver

    .+@.+..{2,3}

i stedet for det korrekte

    .+@.+\\..{2,3}

Prøv at skrive

    var pattern = new RegExp(/.+@.+\\..{2,3}/);

altså med / i stedet for \", og se om det ikke bliver bedre.

Mvh
Jesper Naur
Avatar billede jette1 Nybegynder
19. august 2001 - 18:31 #5
JacobA --> Jeg fik samme (forkerte) resultat da jeg afprøvede din teori.

Jesper Naur --> Perfekt! Det virker bare nu. Jeg takker og kvittere med point :-)

rfogh --> Tak for tippet, det vil jeg rette :-)
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