Préift E-Mail Adress mat JavaScript a Regular Expressiounen

Virun enger Weil hunn ech e Passwuert Kraaft Checker benotzt JavaScript a Regular Expressiounen. Op därselwechter Note kënnt Dir och d'Struktur vun enger E-Mail Adress kontrolléieren mat der selwechter Regular Expressioun (Regex) Methodik.

Wann Äert Formelement den id = "E-Mailadress" an Dir addéiert e Formulaire onSubmit = ”zréck checkEmail ();“, Dëst ass eng Javascript-Funktioun déi Dir benotze kënnt fir en Alarm zréckzeginn wann d'E-Mail Adress eng valabel Struktur huet oder net:

function checkEmail() {
var email = document.getElementById('emailaddress');
var filter = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
if (!filter.test(email.value)) {
alert('Please provide a valid email address');
email.focus;
return false;
}
}

D'Funktioun validéiert den Inhalt vun der E-Mail un dee vum Filter. Wann de Verglach net klappt, spréngt en Alarm op a bréngt de Fokus zréck an d'E-Mail Adress Feld!

41 Comments

  1. 1

    Fir Formulare mat méi E-Mail Adressen, wier et gutt class = "emailaddress" ze maachen. Wann Dir d'Prototype.js Bibliothéik hutt (http://www.prototypejs.org) op der Säit abegraff kënnt Dir sou eppes maachen:

    var valabel = richteg;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$ ('. E-Mailadress'). all (Funktioun (E-Mail) {
    wann (! filter.test (email.value)) {
    Alarm (? Gitt w.e.g. eng gëlteg E-Mail Adress?);
    Email.fokus;
    valabel = falsch;
    }
    });
    Retour valabel;

  2. 5
  3. 7

    Ech hu gär d'Iddi, awer ech wär zéckt fir dëse besonneschen regulären Ausdrock unzehuelen ouni Beschreiwung vu wéi eng legal E-Mail Adressen et net acceptéiert a wéi eng illegal Adressen et erlaabt.

    Fir e Beispill vun engem reegelméissegen Ausdrock deen eng anstänneg Aarbecht niewent enger Erklärung mécht wéi eng Fäll et net ofdeckt, kuckt dëst:

    http://www.regular-expressions.info/email.html

    Meng perséinlech Preferenz ass déi meescht einfach Fäll ze decken an eng Warnung fir alles anescht auszeginn anstatt se ze refuséieren. Wann de Bob wierklech Sto wëllt ofginn bob@com.museum éischter wéi bob@museum.com, firwat léisst hien hien net?

    • 8

      Salut Reg,

      Dir kënnt de Regex testen mat engem Online Regex Tester.

      Och, et ass definitiv vill méi dat ka gemaach ginn wann Dir e wëllt garantéieren E-Mailadress ass valabel am Aklang mat der RFC.

      Et ginn e puer Grënn fir engem net erlaabt eng ongëlteg E-Mail Adress anzeginn:
      1. Si wäerte irritéiert op Iech wann d'E-Mail déi se erwaart hunn net duerchkommen - egal ob et Är Schold war oder net d'Adress ass falsch aginn.
      2. Wann com.museum e gëltege Domain wier an, loosst eis soen, Yahoo! et operéiert - all E-Mail Adress déi gestouss ass, hätt en negativen Impakt op de Ruff vun Ärer Firma fir E-Mail Liwwerung. Dëst kéint dozou féieren datt all Är E-Mail vun Ärer Firma blockéiert gëtt.
      3. Wann Ären E-Mail Service Provider Iech erlaabt aginn bob@com.museum, Dir géift och bezuele fir all E-Mail, déi un dës E-Mail Adress geschéckt gëtt, bis se dës Adress wéinst Bouns ofgemellt hunn. Ech géif kloer vun all ESP steieren, déi eng ongëlteg E-Mail Adress esou erlaben - si huelen just Är Suen!

      Merci fir laanscht!
      Doug

  4. 9
  5. 10

    Et gëtt vill méi einfach Wee fir den Ausdrock ze schreiwen:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - Mat dem endgültege Modifikator / i ass et net néideg de grousse Fallraum unzeginn.
    - Ech weess et net August: Huet mat Zuelen dran.
    Op enger Säit Notiz, ech erlaben TLD mat bis zu 6 Zeechen; nei komme reegelméisseg un an Dir wësst ni (gutt, déi zukünfteg kënnen och Zuelen dran hunn, ech weess).

  6. 11

    Moien,

    Ech probéieren dëst an enger existenter Form an Echtzäit ze benotzen, awer dëst schéngt net an Echtzäit ze validéieren wéi Äert Passwuert Kraaft Checker ...

    Oder, sinn ech just dat Clueless, an et funktionnéiert net fir mech?

  7. 12

    btw, ech hu wierklech gär wat Dir hei leeft, Är Tutorials si ganz einfach, ech wäert dës definitiv bookmarkéieren ....

  8. 13
  9. 16
  10. 17

    Just eng kleng Korrektur: De regulären Ausdrock huet en Extra () + um Enn. Et sollt liesen:

    ^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+[a-zA-Z0-9]{2,4}$

    Mat der éischter all Längt TLDs géifen akzeptéiert ginn (wat net intrinsekal falsch ass wéi anerer drop higewisen hunn, awer wann dat d'Absicht war den Ausdrock kéint verkierzt ginn).

  11. 18

    Kënnt Dir de regulären Ausdrock vun dësem Code erklären a wéi et funktionnéiert? Och iwwer .test - Ass .test eng Standard Erklärung am Javascript fir Saachen ze kontrolléieren wéi Dir am Code hei uewen gemaach hutt?

  12. 19

    Dëst ass e kuerze Code fir E-Mail Ausdrock-

    Funktioun validateEmail (id)
    {
    var emailPattern = /^[a-zA-Z0-9._- ]+@ [aa- zA-Z0-9.- ]+. [a-zA-Z] {2,4 $ /;
    Retour emailPattern.test (id);

    }
    Deepak Rai
    Varanasi

  13. 20

    Dëst ass e kuerze Code fir E-Mail Ausdrock-

    Funktioun validateEmail (id)
    {
    var emailPattern = /^[a-zA-Z0-9._- ]+@ [aa- zA-Z0-9.- ]+. [a-zA-Z] {2,4 $ /;
    Retour emailPattern.test (id);

    }
    Deepak Rai
    Varanasi

  14. 21
  15. 22
  16. 23

    Merci, awer et ass e Feeler an dësem Regex. Ech sinn net e Regex Expert, awer ech hunn E-Mail probéiert:

    Test @ Test

    an et ass de Regex passéiert ... Ech hu gemierkt datt et feelt dem "." sou soll et sinn:

    /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/

  17. 24
  18. 27

    Gutt, dëst ass just e graffe Scheck awer net 100% korrekt, zum Beispill wier dëst an der Rei john_doe. @ gmail.com déi eigentlech keng gëlteg E-Mail Adress ass (Punkt ass net als leschte Charakter am lokalen Deel vun der E-Mail erlaabt).
    Och et géif akzeptéieren john…doe@gmail.com wat och ongëlteg ass, well et kann net méi wéi ee Punkt an enger Sequenz sinn.

    Dëst sinn nëmmen e puer Mängel déi ech op den éischte Bléck gemierkt hunn.
    Meng Intentioun ass net ze baséieren just dëst ze weisen am Fall wou een dëst als Sécherheetscheck plangt - net sécher genuch.

    Fir Info iwwer gëlteg E-Mail Adressen, kuckt hei: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Deepak,

    Eigentlech mengen ech, Dir musst eng Flucht fir de Punkt uwenden ("."). Also, Är Funktioun sollt sinn, amplaz:

    Funktioun validateEmail (id)
    {
    var emailPattern = /^[a-zA-Z0-9._- ]+@ [aa- zA-Z0-9.- ]+. [a-zA-Z] {2,4 $ /;
    Retour emailPattern.test (id);

    }

    Soss géif de Punkt "all Charakter" heeschen. Ech gleewen datt sou speziell Zeechen entkommen mussen.

    Gréiss,

    Federico

  20. 29

    Funktioun validateEmail (fld) {
    var Feeler = ””;
    var tfld = trim (fld.value); // Wäert vum Feld mat Wäissraum ofgeschnidden
    var emailFilter = /^ [^ @] + @ [^ @.] +. [^ @] *ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    wann (fld.value == "Gitt Är E-Mail Adress an") {

    Feeler = "Gitt w.e.g. Är E-Mail Adress.n";
    } soss wann (! emailFilter.test (tfld)) {// Test E-Mail fir illegal Zeechen

    Feeler = "Gitt w.e.g. eng gëlteg E-Mail Adress.n";
    } soss wann (fld.value.match (illegalChars)) {

    Feeler = "Gitt w.e.g. eng gëlteg E-Mail Adress.n";
    }
    Retour Feeler;
    }

  21. 30

    Funktioun validateEmail (fld) {
    var Feeler = ””;
    var tfld = trim (fld.value); // Wäert vum Feld mat Wäissraum ofgeschnidden
    var emailFilter = /^ [^ @] + @ [^ @.] +. [^ @] *ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    wann (fld.value == "Gitt Är E-Mail Adress an") {

    Feeler = "Gitt w.e.g. Är E-Mail Adress.n";
    } soss wann (! emailFilter.test (tfld)) {// Test E-Mail fir illegal Zeechen

    Feeler = "Gitt w.e.g. eng gëlteg E-Mail Adress.n";
    } soss wann (fld.value.match (illegalChars)) {

    Feeler = "Gitt w.e.g. eng gëlteg E-Mail Adress.n";
    }
    Retour Feeler;
    }

  22. 31

    Funktioun validateEmail (fld) {
    var Feeler = ””;
    var tfld = trim (fld.value); // Wäert vum Feld mat Wäissraum ofgeschnidden
    var emailFilter = /^ [^ @] + @ [^ @.] +. [^ @] *ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    wann (fld.value == "Gitt Är E-Mail Adress an") {

    Feeler = "Gitt w.e.g. Är E-Mail Adress.n";
    } soss wann (! emailFilter.test (tfld)) {// Test E-Mail fir illegal Zeechen

    Feeler = "Gitt w.e.g. eng gëlteg E-Mail Adress.n";
    } soss wann (fld.value.match (illegalChars)) {

    Feeler = "Gitt w.e.g. eng gëlteg E-Mail Adress.n";
    }
    Retour Feeler;
    }

  23. 32

    Funktioun validateEmail (fld) {
    var Feeler = ””;
    var tfld = trim (fld.value); // Wäert vum Feld mat Wäissraum ofgeschnidden
    var emailFilter = /^ [^ @] + @ [^ @.] +. [^ @] *ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    wann (fld.value == "Gitt Är E-Mail Adress an") {

    Feeler = "Gitt w.e.g. Är E-Mail Adress.n";
    } soss wann (! emailFilter.test (tfld)) {// Test E-Mail fir illegal Zeechen

    Feeler = "Gitt w.e.g. eng gëlteg E-Mail Adress.n";
    } soss wann (fld.value.match (illegalChars)) {

    Feeler = "Gitt w.e.g. eng gëlteg E-Mail Adress.n";
    }
    Retour Feeler;
    }

  24. 33
  25. 34
  26. 35
  27. 36
  28. 37
  29. 38
  30. 39
  31. 40

Wat denks du?

Dëse Site benotzt Akismet fir Spam ze reduzéieren. Léiert wéi Är Kommentarfaten veraarbecht ginn.