Электрондук почта дарегин JavaScript жана туруктуу сөз айкаштары менен текшериңиз

Бир аз мурун мен койду JavaScript жана жөнөкөй сөздөрдү колдонгон Сырсөздүн күчүн текшергич. Ошол эле жазууда, электрондук почта дарегинин түзүлүшүн ошол эле туруктуу экспрессия (регеж) методологиясын колдонуп текшере аласыз.

Эгерде сиздин формалык элементте id = "email address" жана сиз форма кошосуз onSubmit = ”return checkEmail ();“, Бул Javascript функциясы, эгер сиз электрондук почтанын дареги жарактуу түзүмгө ээ болсоңуз же эскертүү берсеңиз болот:

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

Функция электрондук почтанын мазмунун чыпка менен тастыктайт. Эгерде салыштыруу болбой калса, анда ал эскертүү пайда болуп, фокусту электрондук почта дареги талаасына кайтарат!

41 Comments

  1. 1

    Бир нече электрондук почта даректери бар бланктар үчүн class = ”emailaddress” кылсаңыз жакшы болмок. Эгерде сизде prototype.js китепканасы (http://www.prototypejs.org) баракчага киргизилген, сиз мындай нерсени жасай аласыз:

    var valid = true;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$ ('. emailaddress'). every (function (email) {
    if (! filter.test (email.value)) {
    эскертүү (? Сураныч, туура электрондук почта дарегин көрсөтүңүз?);
    email.focus;
    жарактуу = жалган;
    }
    });
    кайтаруу жарактуу;

  2. 5
  3. 7

    Мага бул идея жагат, бирок мен бул мыйзамдуу электрондук почтанын даректерин кабыл албагандыгын жана мыйзамсыз даректерди кандайча бергенин сүрөттөбөстөн, ушул туруктуу сөз айкашын кабыл алуудан тартынмакмын.

    Татыктуу жумуш аткарган туруктуу сөз айкашынын мисалы үчүн, кайсы учурларда камтылбагандыгын түшүндүрүп, төмөнкүнү караңыз:

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

    Менин жеке артыкчылыгым - жөнөкөй учурлардын көпчүлүгүн чагылдырып, аны четке кагуунун ордуна, калган нерселердин бардыгына эскертүү берүү. Эгер Боб чын эле тапшырууну кааласа bob@com.museum ордуна bob@museum.com, эмне үчүн ага жол бербейт?

    • 8

      Салам Рег,

      Ange колдонуп Regexти текшерип көрсөңүз болот Online Regex Tester.

      Ошондой эле, кепилдик берүүнү кааласаңыз, дагы көп нерселерди жасай аласыз электрондук почта дареги RFC ылайык жарактуу.

      Жараксыз электрондук почта дарегин кимдир бирөөгө киргизбөөгө бир нече себеп бар:
      1. Күтүлгөн электрондук почта дареги туура эмес киргизилгенине же болбогондугуна карабастан, алар сизди кыжырдантышат.
      2. Эгерде com.museum жарактуу домен болсо жана, мисалы, Yahoo! аны иштеткен - секирген ар кандай электрондук почта дареги компанияңыздын электрондук почта жеткирүү беделине терс таасирин тийгизет. Бул сиздин компаниянын бардык электрондук почталарын бөгөттөөгө алып келиши мүмкүн.
      3. Эгерде сиздин электрондук почта тейлөөчүңүз сизге кирүүгө уруксат берген болсо bob@com.museum, ошондой эле электрондук почта дарегине жөнөтүлгөн ар бир электрондук почта үчүн, алар секирүүлөргө байланыштуу ал даректен баш тартышканга чейин төлөйсүз. Ушундай жараксыз электрондук почта дарегине жол берген ар кандай ESPден алыс болушум керек - алар жөн гана сиздин акчаңызды алып жатышат!

      Келгениңиз үчүн рахмат!
      Даг

  4. 9
  5. 10

    Сөз айкашын жазуунун кыйла жөнөкөй жолу бар:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - Акыркы модификатор менен / i жогорку регистрди көрсөтүүнүн кажети жок.
    - Мен эч кимисин билбейм TLD ичинде сандар бар
    Кошумча белгилей кетүүчү нерсе, мен TLDге 6 белгиге чейин уруксат берем; жаңылары үзгүлтүксүз келип турат жана сен эч качан билбейсиң (келечекте келечекте келечекте номурлар болушу мүмкүн, мен билем).

  6. 11

    Салам,

    Мен муну мурунку формада реалдуу убакыт режиминде колдонууга аракет кылып жатам, бирок ал пароль күчүн текшергич сыяктуу реалдуу убакытта текшерилип жаткан жок окшойт ...

    Же, мен жөн эле ушунча түшүнүксүзбүн, ал мага иштебейби?

  7. 12
  8. 13

    Эле бир маалымат; Мен Аденин чечимин сынап көргөн жокмун, бирок жогоруда келтирилген үлгүдө апостроф камтылган электрондук почта даректери текшерилбейт .. (мисалы, Mike.O'Hare@Whatever.com). Апострофтор RFC 2821/2822 -> ылайык жарактуу http://www.faqs.org/rfcs/rfc2822.html

    HTH,
    Санджай

  9. 16
  10. 17

    Кичине гана түзөтүү: туруктуу сөз айкашынын аягында кошумча () + бар. Ал окуу керек:

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

    Биринчиси менен, каалаган узундуктагы TLDлер кабыл алынат (бул башкалар белгилегендей, эч кандай жаңылыштык эмес, бирок эгер ниет ушундай болсо, анда сөз айкашын кыскартууга болот).

  11. 18

    Ушул коддун туруктуу иштешин жана анын кандайча иштээрин түшүндүрүп бере аласызбы? .Test жөнүндө дагы. - Жогорудагы коддогу сыяктуу нерселерди текшерүү үчүн javascriptтеги .test демейки билдирүүбү?

  12. 19

    Бул электрондук почта билдирүүсү үчүн кыска код-

    функция validateEmail (id)
    {
    var emailPattern = /^ :a-zA-Z0-9._-................+@(a-zA-Z0-9.- ]++ [a-zA-Z
    return emailPattern.test (id);

    }
    Deepak Rai
    Катманду

  13. 20

    Бул электрондук почта билдирүүсү үчүн кыска код-

    функция validateEmail (id)
    {
    var emailPattern = /^ :a-zA-Z0-9._-................+@(a-zA-Z0-9.- ]++ [a-zA-Z
    return emailPattern.test (id);

    }
    Deepak Rai
    Катманду

  14. 21
  15. 22
  16. 23

    Рахмат, бирок бул регисте ката кетти. Мен regex адиси эмесмин, бирок электрондук почтаны колдонуп көрдүм:

    test @ test

    жана ал Регистен өттү ... Мен анын "" качып кутула албай жаткандыгын байкадым. ошондой болушу керек:

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

  17. 24
  18. 27

    Ооба, бул жөн гана орой текшерүү, бирок 100% так эмес, мисалы, бул жакшы болмок john_doe. @ gmail.com ал электрондук почта дареги жараксыз (электрондук почтанын жергиликтүү бөлүгүндө акыркы белги катары чекит коюуга болбойт).
    Ошондой эле ал кабыл алат john…doe@gmail.com бул дагы жараксыз, анткени ырааттуулукта бирден ашык чекит болушу мүмкүн эмес.

    Булар биринчи көргөндө эле байкаган айрым кемчиликтер.
    Менин оюм, кимдир бирөө аны коопсуздук текшерүүсү катары колдонууну пландап жаткан болсо, ушуну гана белгилөө үчүн эмес, жетиштүү деңгээлде коопсуз эмес.

    Жарактуу электрондук почта даректери жөнүндө маалымат алуу үчүн төмөнкүнү караңыз: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Deepak,

    Чындыгында, чекит үчүн качууну колдонуу керек деп ойлойм ("."). Демек, анын милдети төмөнкүчө болушу керек:

    функция validateEmail (id)
    {
    var emailPattern = /^ :a-zA-Z0-9._-................+@(a-zA-Z0-9.- ]++ [a-zA-Z
    return emailPattern.test (id);

    }

    Болбосо, чекит "каалаган мүнөздү" билдирет. Мындай өзгөчө каармандардан качыш керек деп эсептейм.

    урматтоо менен,

    Federico

  20. 29

    функция validateEmail (fld) {
    var error = "";
    var tfld = trim (fld.value); // боштук кыскартылган талаанын мааниси
    var emailFilter = /^ [^@ ]+@(^@.]
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == "Электрондук почта дарегиңизди киргизиңиз") {

    error = "Сураныч, электрондук почта дарегиңизди киргизиңиз. n";
    } else if (! emailFilter.test (tfld)) {// электрондук почтаны мыйзамсыз белгилер үчүн текшерүү

    error = "Сураныч, жарактуу электрондук почта дарегин киргизиңиз. n";
    } else if (fld.value.match (illegalChars)) {

    error = "Сураныч, жарактуу электрондук почта дарегин киргизиңиз. n";
    }
    return error;
    }

  21. 30

    функция validateEmail (fld) {
    var error = "";
    var tfld = trim (fld.value); // боштук кыскартылган талаанын мааниси
    var emailFilter = /^ [^@ ]+@(^@.]
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == "Электрондук почта дарегиңизди киргизиңиз") {

    error = "Сураныч, электрондук почта дарегиңизди киргизиңиз. n";
    } else if (! emailFilter.test (tfld)) {// электрондук почтаны мыйзамсыз белгилер үчүн текшерүү

    error = "Сураныч, жарактуу электрондук почта дарегин киргизиңиз. n";
    } else if (fld.value.match (illegalChars)) {

    error = "Сураныч, жарактуу электрондук почта дарегин киргизиңиз. n";
    }
    return error;
    }

  22. 31

    функция validateEmail (fld) {
    var error = "";
    var tfld = trim (fld.value); // боштук кыскартылган талаанын мааниси
    var emailFilter = /^ [^@ ]+@(^@.]
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == "Электрондук почта дарегиңизди киргизиңиз") {

    error = "Сураныч, электрондук почта дарегиңизди киргизиңиз. n";
    } else if (! emailFilter.test (tfld)) {// электрондук почтаны мыйзамсыз белгилер үчүн текшерүү

    error = "Сураныч, жарактуу электрондук почта дарегин киргизиңиз. n";
    } else if (fld.value.match (illegalChars)) {

    error = "Сураныч, жарактуу электрондук почта дарегин киргизиңиз. n";
    }
    return error;
    }

  23. 32

    функция validateEmail (fld) {
    var error = "";
    var tfld = trim (fld.value); // боштук кыскартылган талаанын мааниси
    var emailFilter = /^ [^@ ]+@(^@.]
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == "Электрондук почта дарегиңизди киргизиңиз") {

    error = "Сураныч, электрондук почта дарегиңизди киргизиңиз. n";
    } else if (! emailFilter.test (tfld)) {// электрондук почтаны мыйзамсыз белгилер үчүн текшерүү

    error = "Сураныч, жарактуу электрондук почта дарегин киргизиңиз. n";
    } else if (fld.value.match (illegalChars)) {

    error = "Сураныч, жарактуу электрондук почта дарегин киргизиңиз. n";
    }
    return error;
    }

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

      Бирок заманбап браузерлер менен гана иштейт. Тилекке каршы, дүйнө азырынча кармала элек. -
      IPhone үчүн Почта кутусунан жөнөтүлдү

Эмне деп ойлойсуң?

Бул сайт спам азайтуу Akismet колдонот. Сиздин комментарий маалымат кандайча иштелишин Үйрөнүү.