Электрондық пошта мекенжайын JavaScript және тұрақты өрнектермен тексеріңіз

Біраз бұрын мен а JavaScript және тұрақты өрнектерді қолдана отырып, пароль күшін тексеру құралы. Осы жазбада сіз электрондық пошта мекенжайының құрылымын бірдей тұрақты өрнек (regex) әдіснамасын қолдана отырып тексере аласыз.

Егер сіздің формалық элементіңізде 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 Пікірлер

  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})+$/;
    $$ ('. email address'). every (function (email) {
    егер (! 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-ті тексеріп көруге болады Онлайн режиміндегі тест-тест.

      Сонымен қатар, егер сіз оны қамтамасыз етуді қаласаңыз, әлдеқайда көп нәрсе жасалуы мүмкін электрондық пошта АӨК сәйкес жарамды.

      Жарамсыз электрондық пошта мекенжайын біреудің кіруіне жол бермеудің бірнеше себептері бар:
      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

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

    HTH,
    Санжай

  9. 16

    Егер WordPress-тегі түсініктемелерде жалған электрондық пошта мекен-жайларын болдырмауға шешім тапсақ жақсы болар еді

  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}$/;
    emailPattern.test (id) қайтару;

    }
    Дипак Рай
    варанасы

  13. 20

    Бұл электрондық поштаны білдіруге арналған қысқа код -

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

    }
    Дипак Рай
    варанасы

  14. 21
  15. 22
  16. 23

    Рақмет, бірақ бұл регисте қате бар. Мен regex маманы емеспін, бірақ электрондық поштаны қолданып көрдім:

    тест @ тест

    ол регден өтті ... мен оның «» -ден қашып кетпейтінін байқадым. сондықтан болуы керек:

    /^([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}$/;
    emailPattern.test (id) қайтару;

    }

    Әйтпесе, нүкте «кез-келген таңбаны» білдіреді. Мұндай ерекше кейіпкерлерден қашу керек деп санаймын.

    Құрметпен,

    Федерико

  20. 29

    функция validateEmail (fld) {
    var error = ””;
    var tfld = кесу (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”;
    }
    қайтару қатесі;
    }

  21. 30

    функция validateEmail (fld) {
    var error = ””;
    var tfld = кесу (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”;
    }
    қайтару қатесі;
    }

  22. 31

    функция validateEmail (fld) {
    var error = ””;
    var tfld = кесу (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”;
    }
    қайтару қатесі;
    }

  23. 32

    функция validateEmail (fld) {
    var error = ””;
    var tfld = кесу (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”;
    }
    қайтару қатесі;
    }

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

Сен не ойлайсың?

Бұл сайт спамның төмендеуі үшін Akismet пайдаланады. Деректеріңіздің қалай өңделетінін біліңіз.