Susihon ang Email Address nga adunay JavaScript ug Regular nga mga Pagpahayag

Kaniadto ra gibutang ko ang a Ang Checker sa Kusog sa Password gamit ang JavaScript ug Regular nga mga Pagpahayag. Sa parehas nga sulat, mahimo usab nimo masusi ang istruktura sa usa ka email address nga gigamit ang parehas nga pamaagi sa regular nga ekspresyon (regex).

Kung ang imong elemento sa porma adunay id = "emailaddress" ug nagdugang ka usa ka porma onSubmit = "pagbalik nga pagsusiEmail ();", Kini usa ka kalihokan sa Javascript nga mahimo nimo magamit aron mabalik ang usa ka alerto kung ang email address adunay usa ka balido nga istraktura o dili:

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;
}
}

Ang pagpalihok nagpamatuud sa mga sulud sa email sa kana sa filter. Kung napakyas ang pagtandi, kini mopakita usa ka alerto ug ibalik ang focus balik sa natad sa email address!

41 Comments

  1. 1

    Alang sa mga porma nga adunay daghang mga email address, maayo nga buhaton ang class = ”emailaddress”. Kung adunay ka prototype.js library (http://www.prototypejs.org) gilakip sa panid nga mahimo nimo ang usa ka butang nga sama niini:

    var balido = tinuod;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$ ('. emailaddress'). matag usa (pagpaandar (email) {
    kung (! filter.test (email.value)) {
    alerto (? Palihug paghatag usa ka balido nga email address?);
    email.focus;
    balido = bakak;
    }
    });
    pagbalik balido;

  2. 5
  3. 7

    Gusto ko ang ideya, apan nagduha-duha ako sa paggamit sa niining piho nga naandan nga ekspresyon nga wala’y paghulagway kung unsang ligal nga mga email address ang wala niini gidawat ug unsang mga ilegal nga adres ang gitugotan niini.

    Alang sa usa ka pananglitan sa usa ka regular nga ekspresyon nga naghimo sa usa ka disente nga trabaho kauban ang usa ka pagpatin-aw sa mga kaso diin wala kini masakup, tan-awa kini:

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

    Ang akong kaugalingon nga gusto mao ang pagtabon sa kadaghanan sa mga yano nga kaso ug pag-isyu og usa ka pasidaan alang sa tanan nga butang kaysa isalikway kini. Kung gusto gyud ni Bob ang pagsumite bob@com.museum kay sa bob@museum.com, ngano nga dili nimo siya pasagdan?

    • 8

      Kumusta Reg,

      Mahimo nimong sulayan ang Regex nga naggamit us aka Online Regex Tester.

      Ingon usab, siguradong daghan pa ang mahimo kung gusto nimong masiguro ang usa ka email address balido uyon sa RFC.

      Adunay pipila nga mga katarungan nga dili tugotan ang bisan kinsa nga magsulud usa ka dili balido nga email address:
      1. Maglagot sila kanimo kung dili moagi ang email nga gipaabut nila - dili igsapayan kung ikaw man ang hinungdan nga sayop ang pagkasulud.
      2. Kung ang com.museum usa ka balido nga domain ug, ingnon ta, Yahoo! gipadagan kini - ang bisan unsang email address nga ningbangon mahimong adunay dili maayong epekto sa dungog sa imong kompanya alang sa paghatud sa email. Mahimo kini magdala sa tanan nga email sa imong kompanya nga gibabagan.
      3. Kung gitugutan ka sa imong email service provider nga mosulod bob@com.museum, magbayad ka usab alang sa matag email nga gipadala sa kana nga email address hangtod nga gi-unsubscribe nila ang kana nga adres tungod sa mga pag-ulbo. Gipalayo ko ang bisan unsang ESP nga magtugot sa dili balido nga email address nga ingon niana - gikuha ra nila ang imong salapi!

      Salamat sa paghunong sa!
      Doug

  4. 9
  5. 10

    Adunay labi ka yano nga paagi aron isulat ang ekspresyon:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - Uban sa katapusan nga modifier / i dili kinahanglan nga ipakita ang taas nga sakup sa kaso.
    - Wala koy nahibal-an TLD nga adunay mga numero niini.
    Sa usa ka timan nga sulat, gitugotan nako ang TLD nga hangtod sa 6 ka char; ang mga bag-o kanunay nangabut ug wala nimo nahibal-an (maayo, bisan sa mga umaabot nga mahimo pa nga adunay mga numero sa kini, nahibal-an ko).

  6. 11

    Hi didto,

    Tring nako nga gamiton kini sa usa ka naa na form sa real-time, apan dili kini makita nga nagpanghimatuud sa realtime sama sa imong checker sa kusog sa password…

    O, ako ra ba ang clueless, ug kini dili molihok alang kanako?

  7. 12

    btw, gusto gyud nako kung unsa ang imong ginabuhat dinhi, yano ra kaayo ang imong mga panudlo, siguradong igmarkahan nako kini.

  8. 13
  9. 16
  10. 17

    Gamay ra nga pagtul-id: Ang naandan nga ekspresyon adunay dugang nga () + sa katapusan. Kinahanglan basahon kini:

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

    Uban sa una sa bisan unsang gitas-on ang mga TLD mahimong dawaton (nga dili intrinsecally sayup sama sa giingon sa uban, apan kung kana ang intensyon ang ekspresyon mahimong mubu)

  11. 18

    Mahimo ba nimo nga ipasabut ang kanunay nga pagpahayag sa kini nga code ug kung giunsa kini nagalihok? Usab bahin sa .test - Ang .test ba usa ka default nga pahayag sa javascript aron masusi ang mga butang nga sama sa imong gibuhat sa code sa taas?

  12. 19

    Kini usa ka mubo nga code alang sa ekspresyon sa email-

    function validateEmail (id)
    {
    var emailPattern = /^[a-zA-Z0-9._-[+@[a-zA-Z0-9.- Ingles+.[a-zA-Zopito{2,4}$/;
    ibalik ang emailPattern.test (id);

    }
    Deepak Rai
    varanasi

  13. 20

    Kini usa ka mubo nga code alang sa ekspresyon sa email-

    function validateEmail (id)
    {
    var emailPattern = /^[a-zA-Z0-9._-[+@[a-zA-Z0-9.- Ingles+.[a-zA-Zopito{2,4}$/;
    ibalik ang emailPattern.test (id);

    }
    Deepak Rai
    varanasi

  14. 21
  15. 22
  16. 23

    Salamat, apan adunay sayup sa kini nga regex. Dili ako eksperto sa regex, apan gisulayan nako ang email:

    pagsulay @ pagsulay

    ug nakapasa kini sa regex… Akong namatikdan nga kulang kini sa pag-ikyas sa "." mao kini kinahanglan:

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

  17. 24
  18. 27

    Mao ra, kini usa ra ka lisud nga pagsusi apan dili 100% nga ensakto, sama pananglit kini okay ra john_doe. @ gmail.com nga sa tinuud dili usa ka balido nga e-mail address (ang tuldok dili gitugotan ingon usa ka ulahi nga karakter sa lokal nga bahin sa e-mail).
    Kini usab modawat john…doe@gmail.com nga dili usab husto tungod kay dili mahimo nga adunay labaw pa sa usa ka tulbok sa usa ka han-ay.

    Kini pipila ra nga mga sayup nga akong namatikdan sa una nga pagtan-aw.
    Ang akong intensyon dili ang pagpa-bash aron lang maipakita kini kung adunay nagplano nga gamiton kini ingon usa ka security check - dili igo ang pagsiguro.

    Alang sa kasayuran bahin sa balido nga mga adres sa e-mail susiha kini: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Deepak,

    Sa tinuud, sa akong hunahuna kinahanglan nimo nga mag-apply usa ka pag-ikyas alang sa tuldok ("."). Ingon niana, kinahanglan ang imong pagpaandar, hinoon:

    function validateEmail (id)
    {
    var emailPattern = /^[a-zA-Z0-9._-[+@[a-zA-Z0-9.- Ingles+.[a-zA-Zopito{2,4}$/;
    ibalik ang emailPattern.test (id);

    }

    Kung dili, ang tulbok nagpasabut nga "bisan unsang kinaiya". Nagtuo ako nga ang ingon nga espesyal nga mga karakter kinahanglan nga makalikay.

    Regards,

    Federico

  20. 29

    paglihok validateEmail (fld) {
    var error = "";
    var tfld = putol (fld.value); // bili sa uma nga giputlan og puti
    var emailFilter = / Micay
    var illegalChars = / [(),;: \ ”[]] /;

    kung (fld.value == "Isulud ang imong email Address") {

    sayup = "Palihug isulud ang imong Email address.n";
    } uban pa kung (! emailFilter.test (tfld)) {// pagsulay sa email alang sa mga iligal nga karakter

    sayup = "Palihug pagsulud usa ka balido nga email address.n";
    } uban pa kung (fld.value.match (illegalChars)) {

    sayup = "Palihug pagsulud usa ka balido nga email address.n";
    }
    pagbalik sayup;
    }

  21. 30

    paglihok validateEmail (fld) {
    var error = "";
    var tfld = putol (fld.value); // bili sa uma nga giputlan og puti
    var emailFilter = / Micay
    var illegalChars = / [(),;: \ ”[]] /;

    kung (fld.value == "Isulud ang imong email Address") {

    sayup = "Palihug isulud ang imong Email address.n";
    } uban pa kung (! emailFilter.test (tfld)) {// pagsulay sa email alang sa mga iligal nga karakter

    sayup = "Palihug pagsulud usa ka balido nga email address.n";
    } uban pa kung (fld.value.match (illegalChars)) {

    sayup = "Palihug pagsulud usa ka balido nga email address.n";
    }
    pagbalik sayup;
    }

  22. 31

    paglihok validateEmail (fld) {
    var error = "";
    var tfld = putol (fld.value); // bili sa uma nga giputlan og puti
    var emailFilter = / Micay
    var illegalChars = / [(),;: \ ”[]] /;

    kung (fld.value == "Isulud ang imong email Address") {

    sayup = "Palihug isulud ang imong Email address.n";
    } uban pa kung (! emailFilter.test (tfld)) {// pagsulay sa email alang sa mga iligal nga karakter

    sayup = "Palihug pagsulud usa ka balido nga email address.n";
    } uban pa kung (fld.value.match (illegalChars)) {

    sayup = "Palihug pagsulud usa ka balido nga email address.n";
    }
    pagbalik sayup;
    }

  23. 32

    paglihok validateEmail (fld) {
    var error = "";
    var tfld = putol (fld.value); // bili sa uma nga giputlan og puti
    var emailFilter = / Micay
    var illegalChars = / [(),;: \ ”[]] /;

    kung (fld.value == "Isulud ang imong email Address") {

    sayup = "Palihug isulud ang imong Email address.n";
    } uban pa kung (! emailFilter.test (tfld)) {// pagsulay sa email alang sa mga iligal nga karakter

    sayup = "Palihug pagsulud usa ka balido nga email address.n";
    } uban pa kung (fld.value.match (illegalChars)) {

    sayup = "Palihug pagsulud usa ka balido nga email address.n";
    }
    pagbalik sayup;
    }

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

Unsay imong hunahuna?

Kini nga site naggamit sa Akismet sa pagpakunhod sa spam. Hibal-i kon giunsa ang pagproseso sa datos sa imong komento.