Электрондук почта дарегин 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

    Бир нече электрондук почта даректери бар формалар үчүн класс = "электрондук почта дареги" жасасаңыз жакшы болмок. Эгерде сизде 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').each(функция(электрондук почта) {
    if (!filter.test(email.value)) {
    alert(? Жарактуу электрондук почта дарегин бериңиз?);
    email.focus;
    жарактуу = жалган;
    }
    });
    кайтаруу жарактуу;

  2. 5
  3. 7

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

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

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

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

    • 8

      Салам Reg,

      Сиз Regexти колдонуп сынап көрсөңүз болот Онлайн 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

    btw, мага бул жерде болуп жаткан нерселер абдан жагат, окуу куралдарыңыз абдан жөнөкөй, мен муну сөзсүз түрдө белгилейм….

  8. 13
  9. 16
  10. 17

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

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

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

  11. 18

    Бул коддун кадимки туюнтмасын жана анын кантип иштешин түшүндүрүп бере аласызбы? Ошондой эле .test жөнүндө – .test жогорудагы коддогудай нерселерди текшерүү үчүн JavaScriptтеги демейки билдирүүбү?

  12. 19

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

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

    }
    Дипак Рай
    Катманду

  13. 20

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

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

    }
    Дипак Рай
    Катманду

  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

    Дипак,

    Чынында, менимче, сиз чекит үчүн качууну колдонушуңуз керек («.»). Демек, сиздин функцияңыз болушу керек, анын ордуна:

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

    }

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

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

    Federico

  20. 29

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

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

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

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

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

  21. 30

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

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

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

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

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

  22. 31

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

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

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

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

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

  23. 32

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

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

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

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

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

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

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

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

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