Navnîşana E-nameyê bi JavaScript û Bêjeyên Rêkûpêk Kontrol bikin

Çendek berê min danî a Kontrola Hêza Passwordîfreyê bi karanîna JavaScript û Bêjeyên Rêkûpêk. Di heman notê de, hûn dikarin avahiya navnîşana e-nameyê bi karanîna heman metodolojiya derbirîna rêkûpêk (regex) jî kontrol bikin.

Ger hêmana forma we hebe id = "navnîşana emaila" û hûn formek lê zêde dikin onSubmit = ”checkEmail vegerîne ();", Ev fonksiyonek Javascript e ku hûn dikarin bikar bînin da ku hişyariyek vegerînin heke navnîşana e-nameyê avahiyek derbasdar heye an na:

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

Fonksiyon naveroka e-nameyê û ya parzûnê rastdar dike. Heke berawirdbûn têk biçe, ew hişyariyek derdikeve û fokusê vedigerîne qada navnîşana e-nameyê!

41 Comments

  1. 1

    Ji bo formên ku bi navnîşanên e-nameyên pirjimar hene, ew ê baş be ku sinif = "emailaddress" were kirin. Heke pirtûkxaneya weya prototîp.js heye (http://www.prototypejs.org) di rûpelê de heye hûn dikarin tiştek wusa bikin:

    var derbasdar = rast;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$ ('. emailaddress'). her (karûbar (e-name) {
    if (! filter.test (email.value)) {
    hişyar (? Ji kerema xwe navnîşanek e-nameyek derbasdar peyda bikin?);
    email.focus;
    derbasdar = derewîn;
    }
    });
    vegerîn derbasdar;

  2. 5
  3. 7

    Ez ji ramanê hezdikim, lê ez ê dudil bim ku vê vegotina taybetî ya birêkûpêk qebûl bikim bêyî ku navnîşana kîjan navnîşanên e-nameyên qanûnî qebûl nake û navnîşanên neqanûnî yên ku destûrê dide wan.

    Ji bo mînakek vegotinek rêkûpêk ku li gel ravekirina kîjan bûyeran ew nagire karekî hêja dike, vê yekê bibînin:

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

    Tercîha min a şexsî ew e ku ez ji pir dozên sade vebikim û li şûna redkirina wê ji bo her tiştê din hişyariyekê bidim. Ger Bob bi rastî dixwaze sto bişîne bob@com.museum di şona bob@museum.com, çima wî nahêle?

    • 8

      Silav Reg,

      Hûn dikarin Regex bikar bînin an bikar bînin Serhêl Regex Tester.

      Di heman demê de, bê guman hê bêtir heye ku dikare were kirin heke hûn dixwazin misoger bikin an navnîşana emailê li gorî RFC derbasdar e.

      Çend sedem hene ku nahêlin kesek navnîşanek e-nameyek nederbasdar binivîse:
      1. Ew ê ji we aciz bibin dema ku e-nameya ku ew li bendê ne derbas bibe - bêyî ku sûcê we bû an ne navnîşan xelet hat nivîsandin.
      2. Ger com.museum domainek derbasdar bû û, em bêjin, Yahoo! ew xebitandiye - her navnîşana e-nameya ku vekişiyaye dê bandorek neyînî li ser navûdengê pargîdaniya we bike ji bo radestkirina e-nameyê. Ev dikare bibe sedem ku hemî e-nameya pargîdaniya we werin asteng kirin.
      3. Ger pêşkêşkarê karûbarê e-nameya we destûr da ku hûn têkevin hundur bob@com.museum, her weha hûn ê ji bo her e-nameyek ku ji wê navnîşana e-nameyê re hatî şandin bidin. Ez ê ji her ESP-ê dûr bisekinim ku bi vî rengî navnîşanek e-nameyek nederbasdar bihêle - ew tenê dravê we digirin!

      Spas ji bo sekinandina!
      Doug

  4. 9
  5. 10

    Awayek hêsantir a nivîsandina vegotinê heye:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - Bi guherînera / i ya paşîn ne hewce ye ku rêzika mezin nîşan bike.
    - Ez bi yekê nizanim TLD bi hejmaran tê de.
    Li ser notek alî, ez destûrê didim TLD-ê heya 6 karakteran; yên nû bi rêkûpêk digihîjin û hûn qet nizanin (baş e, yên pêşeroja somme jî dibe ku hejmar jî tê de hebin, ez dizanim).

  6. 11

    Silav,

    Ez diceribînim ku vê di rengek heyî de di rast-demê de bikar bînim, lê ev xuya nabe ku mîna rasterastê weya kontrolkirina şîfreya we were rastandin…

    An, gelo ez tenê ew bêxîret im, û ew ji min re naxebite?

  7. 12

    btw, ez ji tiştê ku hûn li vir diçin pir hez dikim, hînkarên we pir hêsan in, ez ê bê guman vê yekê nîşanker bikim.

  8. 13
  9. 16
  10. 17

    Tenê sererastkirinek piçûk: Di vegotina rêkûpêk de li dawiya wê () + zêde heye. Divê bixwîne:

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

    Bi ya yekem re dê her TLD bi dirêjahî bêne pejirandin (ku jixwe ne rast çewt be wekî yên din diyar kirine, lê ger ku ew armanc bûya dê vegotin kurtir bibe).

  11. 18

    Ji kerema xwe hûn dikarin vegotina birêkûpêk a vê kodê û awayê xebitandina wê vebêjin? Di heman demê de di derbarê .test de - Ma .test di javascript-ê de vegotinek xwerû ye ku tiştên wekî we di koda jor de kirî kontrol bike?

  12. 19

    Ev kodek kurt e ji bo vegotina e-nameyê-

    fonksiyon erê bike E-name (id)
    {
    var emailPattern = /^^a-zA-Z0-9._- +++ [bersa-zA-Z0-9.-]
    emailPattern.test vegerînin (id);

    }
    Deepak Rai
    varanasi

  13. 20

    Ev kodek kurt e ji bo vegotina e-nameyê-

    fonksiyon erê bike E-name (id)
    {
    var emailPattern = /^^a-zA-Z0-9._- +++ [bersa-zA-Z0-9.-]
    emailPattern.test vegerînin (id);

    }
    Deepak Rai
    varanasi

  14. 21
  15. 22
  16. 23

    Spas, lê di vê regexê de xeletiyek heye. Ez ne pisporek regex im, lê min e-name ceriband:

    test @ test

    û ew ji regex derbas bû… min dît ku ew ji "" revê kêm e. ji ber vê yekê divê:

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

  17. 24
  18. 27

    Belê, ev tenê venêranek qeşeng e lê% 100 ne rast e, mînakî ev ê bi we re baş be john_doe. @ gmail.com ku bi rastî ne navnîşanek e-nameyek derbasdar e (xal wekî kesayetiyek paşîn di beşa herêmî ya e-nameyê de nayê destûr kirin).
    Her weha ew ê qebûl bike john…doe@gmail.com ku ew jî nederbasdar e ji ber ku di rêzê de ji yekê zêdetir xal çênabe.

    Vana tenê hin kêmasiyên ku min di dîtina yekem de ferq kirî ne.
    Mebesta min ne tenê şopandina vê yekê ye, heke kesek plan dike ku vê yekê wekî kontrola ewlehiyê bikar bîne - ne ewle ye.

    Ji bo agahdariya der barê navnîşanên e-nameyên derbasdar vê yekê kontrol bikin: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Deepak,

    Bi rastî, ez difikirim ku hûn hewce ne ku revê ji bo xalê bikin ("."). Ji ber vê yekê, fonksiyona we divê, li şûna:

    fonksiyon erê bike E-name (id)
    {
    var emailPattern = /^^a-zA-Z0-9._- +++ [bersa-zA-Z0-9.-]
    emailPattern.test vegerînin (id);

    }

    Wekî din, wateya xalê wê "her karakter" e. Ez bawerim pêdivî ye ku karakterên wusa taybetî werin xilas kirin.

    Regards,

    Federico

  20. 29

    function validateEmail (fld) {
    xeletiya var = "";
    var tfld = trim (fld.value); // nirxa zeviyê ku qada spî jêkirî ye
    var emailFilter = /^^^@^+@^^@.^+.^^@ ]*** /;
    var legalChars = / [(),;: \ ”[]] /;

    heke (fld.value == "Navnîşana e-nameya xwe binivîse") {

    xelet = "Ji kerema xwe navnîşana E-nameya xwe binivîse.n";
    } wekî din ger (! emailFilter.test (tfld)) {// ji bo tîpên neqanûnî e-name biceribîne

    error = "Ji kerema xwe navnîşanek e-nameyek derbasdar binivîse.n";
    } wekî din (fld.value.match (Qeharên neqanûnî)) {

    error = "Ji kerema xwe navnîşanek e-nameyek derbasdar binivîse.n";
    }
    xeletiya vegerê;
    }

  21. 30

    function validateEmail (fld) {
    xeletiya var = "";
    var tfld = trim (fld.value); // nirxa zeviyê ku qada spî jêkirî ye
    var emailFilter = /^^^@^+@^^@.^+.^^@ ]*** /;
    var legalChars = / [(),;: \ ”[]] /;

    heke (fld.value == "Navnîşana e-nameya xwe binivîse") {

    xelet = "Ji kerema xwe navnîşana E-nameya xwe binivîse.n";
    } wekî din ger (! emailFilter.test (tfld)) {// ji bo tîpên neqanûnî e-name biceribîne

    error = "Ji kerema xwe navnîşanek e-nameyek derbasdar binivîse.n";
    } wekî din (fld.value.match (Qeharên neqanûnî)) {

    error = "Ji kerema xwe navnîşanek e-nameyek derbasdar binivîse.n";
    }
    xeletiya vegerê;
    }

  22. 31

    function validateEmail (fld) {
    xeletiya var = "";
    var tfld = trim (fld.value); // nirxa zeviyê ku qada spî jêkirî ye
    var emailFilter = /^^^@^+@^^@.^+.^^@ ]*** /;
    var legalChars = / [(),;: \ ”[]] /;

    heke (fld.value == "Navnîşana e-nameya xwe binivîse") {

    xelet = "Ji kerema xwe navnîşana E-nameya xwe binivîse.n";
    } wekî din ger (! emailFilter.test (tfld)) {// ji bo tîpên neqanûnî e-name biceribîne

    error = "Ji kerema xwe navnîşanek e-nameyek derbasdar binivîse.n";
    } wekî din (fld.value.match (Qeharên neqanûnî)) {

    error = "Ji kerema xwe navnîşanek e-nameyek derbasdar binivîse.n";
    }
    xeletiya vegerê;
    }

  23. 32

    function validateEmail (fld) {
    xeletiya var = "";
    var tfld = trim (fld.value); // nirxa zeviyê ku qada spî jêkirî ye
    var emailFilter = /^^^@^+@^^@.^+.^^@ ]*** /;
    var legalChars = / [(),;: \ ”[]] /;

    heke (fld.value == "Navnîşana e-nameya xwe binivîse") {

    xelet = "Ji kerema xwe navnîşana E-nameya xwe binivîse.n";
    } wekî din ger (! emailFilter.test (tfld)) {// ji bo tîpên neqanûnî e-name biceribîne

    error = "Ji kerema xwe navnîşanek e-nameyek derbasdar binivîse.n";
    } wekî din (fld.value.match (Qeharên neqanûnî)) {

    error = "Ji kerema xwe navnîşanek e-nameyek derbasdar binivîse.n";
    }
    xeletiya vegerê;
    }

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

Hûn çi difikirin?

Ev malpera Akismet bikar tîne ku ji bo kêmkirina spam. Zêdetir agahdariya danûstandinên we çawa pêvajoy kirin.