19. august 2001 - 16:35Der 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..
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.
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.
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 :-)
Synes godt om
Ny brugerNybegynder
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.