Angalia Anwani ya barua pepe na JavaScript na Maneno ya Kawaida

Muda mfupi uliopita niliweka Kikaguzi cha Nguvu ya Nenosiri kwa kutumia JavaScript na Maneno ya Kawaida. Kwenye barua hiyo hiyo, unaweza pia kuangalia muundo wa anwani ya barua pepe ukitumia mbinu sawa ya usemi wa kawaida (regex).

Ikiwa kipengee chako cha fomu kina faili ya id = "anwani ya barua pepe" na unaongeza fomu onSubmit = ”kurudi kuangaliaEmail ();", Hii ​​ni kazi ya Javascript ambayo unaweza kutumia kurudisha arifu ikiwa anwani ya barua pepe ina muundo halali au la:

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

Kazi inathibitisha yaliyomo ya barua pepe kwa ile ya kichungi. Ikiwa kulinganisha kunashindwa, inachukua tahadhari na kurudisha mwelekeo kwenye uwanja wa anwani ya barua pepe!

41 Maoni

  1. 1

    Kwa fomu zilizo na anwani nyingi za barua pepe, itakuwa nzuri kufanya class = "emailaddress". Ikiwa unayo maktaba ya mfano.http://www.prototypejs.orgpamoja na kwenye ukurasa unaweza kufanya kitu kama hiki:

    var halali = kweli;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$ ('. emailaddress'). kila (kazi (barua pepe) {
    ikiwa (! filter.test (email.value)) {
    tahadhari (? Tafadhali toa anwani halali ya barua pepe?);
    barua pepe.focus;
    halali = uwongo;
    }
    });
    kurudi halali;

  2. 5
  3. 7

    Ninapenda wazo hilo, lakini nitasita kupitisha usemi huu wa kawaida bila maelezo ya anwani ipi ya barua pepe ambayo haikubali na ni anwani zipi haramu zinazoruhusu.

    Kwa mfano wa usemi wa kawaida ambao hufanya kazi nzuri pamoja na ufafanuzi wa kesi ambazo hazifuniki, angalia hii:

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

    Upendeleo wangu wa kibinafsi ni kufunika kesi nyingi rahisi na kutoa onyo kwa kila kitu badala ya kukataa. Ikiwa Bob kweli anataka kuwasilisha bob@com.makumbusho badala ya bob@makumbusho.com, kwanini asimruhusu?

    • 8

      Habari Reg,

      Unaweza kujaribu Regex ukitumia Jaribio la Regex mkondoni.

      Pia, kuna mengi zaidi ambayo yanaweza kufanywa ikiwa unataka kuhakikisha faili ya anuani ya barua pepe halali kulingana na RFC.

      Kuna sababu chache za kutomruhusu mtu kuingia anwani ya barua pepe isiyo sahihi:
      1. Watakukasirikia wakati barua pepe waliyotarajia haipatikani - bila kujali ikiwa ni kosa lako au anwani iliingizwa vibaya.
      2. Ikiwa com.museum ilikuwa uwanja halali na, wacha tuseme, Yahoo! iliiendesha - anwani yoyote ya barua pepe ambayo iliruka itakuwa na athari mbaya kwa sifa ya kampuni yako kwa uwasilishaji wa barua pepe. Hii inaweza kusababisha barua pepe zote za kampuni yako kuzuiwa.
      3. Ikiwa mtoa huduma wako wa barua pepe alikuruhusu kuingia bob@com.makumbusho, ungelipa pia kila barua pepe iliyotumwa kwa anwani hiyo ya barua pepe hadi watakapojiondoa kwa anwani hiyo kwa sababu ya kubaki. Napenda kuacha ESP yoyote ambayo ingeruhusu anwani batili ya barua pepe kama hiyo - wanachukua pesa zako tu!

      Asante kwa kuacha!
      Doug

  4. 9
  5. 10

    Kuna njia rahisi zaidi ya kuandika usemi:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - Na kibadilishaji cha mwisho / i hakuna haja ya kuonyesha masafa ya juu.
    - Sijui yoyote TLD na nambari ndani yake.
    Kwa kumbuka upande, ninaruhusu TLD na hadi chars 6; mpya hufika mara kwa mara na hauwezi kujua (vizuri, siku za usoni za baadaye zinaweza hata kuwa na nambari ndani yake, najua).

  6. 11

    Hi there,

    Ninajaribu kutumia hii katika fomu iliyopo katika wakati halisi, lakini hii haionekani kuwa inathibitisha wakati wa kweli kama hakiki yako ya nguvu ya nywila…

    Au, je! Mimi ni mjinga tu, na ni kazi kwangu?

  7. 12
  8. 13
  9. 16
  10. 17

    Marekebisho madogo tu: Usemi wa kawaida una ziada () + mwishoni. Inapaswa kusoma:

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

    Pamoja na ya kwanza urefu wowote TLDs ingekubaliwa (ambayo sio mbaya sana kama wengine walivyosema, lakini ikiwa hiyo ndiyo nia ya kujieleza inaweza kufupishwa).

  11. 18

    Tafadhali tafadhali fafanua usemi wa kawaida wa nambari hii na jinsi inavyofanya kazi? Pia kuhusu .jaribu - Je! Jaribu taarifa ya msingi katika javascript kuangalia vitu kama ulivyofanya kwenye nambari hapo juu?

  12. 19

    Hii ni nambari fupi ya kujieleza barua pepe-

    kazi idhibitisha Barua pepe (id)
    {
    var emailPattern = / ^ [a-zA-Z0-9._-)+@[a-zA-Z0-9.-)+. [a-zA-Z] {2,4}$/;
    kurudi emailPattern.test (id);

    }
    Deepak Rai
    varanasi

  13. 20

    Hii ni nambari fupi ya kujieleza barua pepe-

    kazi idhibitisha Barua pepe (id)
    {
    var emailPattern = / ^ [a-zA-Z0-9._-)+@[a-zA-Z0-9.-)+. [a-zA-Z] {2,4}$/;
    kurudi emailPattern.test (id);

    }
    Deepak Rai
    varanasi

  14. 21
  15. 22
  16. 23

    Asante, lakini kuna hitilafu katika regex hii. Mimi sio mtaalam wa regex, lakini nilijaribu barua pepe:

    mtihani @ mtihani

    na ilipita regex… niliona inakosa kutoroka "." hivyo inapaswa kuwa:

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

  17. 24
  18. 27

    Kweli, hii ni kuangalia mbaya lakini sio sahihi kwa 100%, kwa mfano hii itakuwa sawa na john_doe. @ gmail.com ambayo sio anwani halali ya barua pepe (nukta hairuhusiwi kama tabia ya mwisho katika sehemu ya barua pepe).
    Pia ingekubali john ...... ambayo pia ni batili kwani haiwezi kuwa na nukta zaidi ya moja kwa mfuatano.

    Hizi ni kasoro tu nilizoona wakati wa kwanza kuona.
    Kusudi langu sio kubabaisha tu kuonyesha hii ikiwa mtu anapanga kutumia hii kama ukaguzi wa usalama - sio salama ya kutosha.

    Kwa habari kuhusu anwani halali za barua pepe angalia hii: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Deepak,

    Kweli, nadhani unahitaji kuomba kutoroka kwa nukta ("."). Kwa hivyo, kazi yako inapaswa kuwa, badala yake:

    kazi idhibitisha Barua pepe (id)
    {
    var emailPattern = / ^ [a-zA-Z0-9._-)+@[a-zA-Z0-9.-)+. [a-zA-Z] {2,4}$/;
    kurudi emailPattern.test (id);

    }

    Vinginevyo, nukta inamaanisha "tabia yoyote". Ninaamini wahusika kama hao wanahitaji kutoroka.

    Regards,

    Federico

  20. 29

    kazi idhibitisha Barua pepe (fld) {
    var kosa = "";
    var tfld = trim (fld.thamani); // thamani ya uwanja na nafasi nyeupe imepunguzwa
    var emailFilter = / ^ [^@ ]+ @ [^^ @. ]+. [^@ ]*ww$/;
    var haramuChars = / [(),;: \ ”[]] /;

    ikiwa (fld.value == "Ingiza Anwani yako ya barua pepe") {

    kosa = "Tafadhali ingiza anwani yako ya barua pepe.n";
    } mwingine ikiwa (! emailFilter.test (tfld)) {// jaribu barua pepe kwa herufi haramu

    kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
    } mwingine ikiwa (fld.value.match (Chars haramu)) {

    kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
    }
    kosa la kurudi;
    }

  21. 30

    kazi idhibitisha Barua pepe (fld) {
    var kosa = "";
    var tfld = trim (fld.thamani); // thamani ya uwanja na nafasi nyeupe imepunguzwa
    var emailFilter = / ^ [^@ ]+ @ [^^ @. ]+. [^@ ]*ww$/;
    var haramuChars = / [(),;: \ ”[]] /;

    ikiwa (fld.value == "Ingiza Anwani yako ya barua pepe") {

    kosa = "Tafadhali ingiza anwani yako ya barua pepe.n";
    } mwingine ikiwa (! emailFilter.test (tfld)) {// jaribu barua pepe kwa herufi haramu

    kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
    } mwingine ikiwa (fld.value.match (Chars haramu)) {

    kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
    }
    kosa la kurudi;
    }

  22. 31

    kazi idhibitisha Barua pepe (fld) {
    var kosa = "";
    var tfld = trim (fld.thamani); // thamani ya uwanja na nafasi nyeupe imepunguzwa
    var emailFilter = / ^ [^@ ]+ @ [^^ @. ]+. [^@ ]*ww$/;
    var haramuChars = / [(),;: \ ”[]] /;

    ikiwa (fld.value == "Ingiza Anwani yako ya barua pepe") {

    kosa = "Tafadhali ingiza anwani yako ya barua pepe.n";
    } mwingine ikiwa (! emailFilter.test (tfld)) {// jaribu barua pepe kwa herufi haramu

    kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
    } mwingine ikiwa (fld.value.match (Chars haramu)) {

    kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
    }
    kosa la kurudi;
    }

  23. 32

    kazi idhibitisha Barua pepe (fld) {
    var kosa = "";
    var tfld = trim (fld.thamani); // thamani ya uwanja na nafasi nyeupe imepunguzwa
    var emailFilter = / ^ [^@ ]+ @ [^^ @. ]+. [^@ ]*ww$/;
    var haramuChars = / [(),;: \ ”[]] /;

    ikiwa (fld.value == "Ingiza Anwani yako ya barua pepe") {

    kosa = "Tafadhali ingiza anwani yako ya barua pepe.n";
    } mwingine ikiwa (! emailFilter.test (tfld)) {// jaribu barua pepe kwa herufi haramu

    kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
    } mwingine ikiwa (fld.value.match (Chars haramu)) {

    kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
    }
    kosa la kurudi;
    }

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

Unafikiri?

Tovuti hii inatumia Akismet kupunguza spam. Jifunze jinsi maoni yako yanasindika.