Проверите адресу е-поште помоћу ЈаваСцрипт-а и регуларних израза

Малопре сам ставио а Провера снаге лозинке помоћу ЈаваСцрипт-а и регуларних израза. У истој белешци можете и да проверите структуру адресе е-поште користећи исту методологију регуларног израза (регуларни израз).

Ако ваш елемент обрасца има ид = ”адреса е-поште” а ви додате образац онСубмит = ”ретурн цхецкЕмаил ();“, Ово је Јавасцрипт функција коју можете користити за враћање упозорења ако адреса е-поште има важећу структуру или не:

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

Функција потврђује садржај е-поште у односу на садржај филтера. Ако поређење не успе, искаче упозорење и враћа фокус назад у поље адресе е-поште!

Komentari

  1. 1

    За обрасце са више адреса е-поште било би добро урадити цласс = ”емаиладдресс”. Ако имате библиотеку прототипе.јс (http://www.prototypejs.org) укључени на страници можете учинити нешто попут овог:

    вар валид = труе;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$ ('. емаиладдресс'). свака (функција (е-пошта) {
    иф (! филтер.тест (емаил.валуе)) {
    упозорење (? Молимо наведите важећу адресу е-поште?);
    емаил.фоцус;
    валид = фалсе;
    }
    });
    повратак важећи;

  2. 5
  3. 7

    Свиђа ми се идеја, али оклевао бих да усвојим овај одређени регуларни израз без описа које правне адресе е-поште не прихвата и које нелегалне адресе дозвољава.

    За пример регуларног израза који пристојно обавља посао уз објашњење којих случајева не покрива, погледајте ово:

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

    Моја лична жеља је да покријем већину једноставних случајева и да упозорим за све остало, уместо да га одбијем. Ако Боб стварно жели да се преда боб@цом.мусеум више него боб@мусеум.цом, зашто му не допустити?

    • 8

      Здраво Рег,

      Можете испробати регуларни израз користећи Онлине Регек Тестер.

      Такође, дефинитивно се може учинити још много тога ако желите да обезбедите емаил адреса важи у складу са РФЦ.

      Постоји неколико разлога због којих некоме не смете да унесете неисправну адресу е-поште:
      1. Досађиваће вам кад е-пошта коју су очекивали не прође - без обзира да ли сте ви криви што је адреса погрешно унета.
      2. Ако је цом.мусеум био важећи домен и, рецимо, Иахоо! управљали њиме - било која адреса е-поште која би се одбила имала би негативан утицај на репутацију ваше компаније у вези са испоруком е-поште. То би могло довести до блокирања свих е-адреса вашег предузећа.
      3. Ако вам је добављач услуга е-поште дозволио да уђете боб@цом.мусеум, такође бисте плаћали за сваку е-пошту послату на ту адресу е-поште док се она не одјави са те адресе због одбијања. Држао бих се подаље од било ког ЕСП-а који би омогућио такву неважећу адресу е-поште - они само узимају ваш новац!

      Хвала што си застао!
      Даг

  4. 9
  5. 10

    Постоји много једноставнији начин за писање израза:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - Са коначним модификатором / и нема потребе за навођењем великог слова.
    - Не знам ни за једног ТЛД са бројевима у себи.
    Уз напомену, дозвољавам ТЛД до 6 знакова; нове стижу редовно и никад се не зна (па, неке будуће можда чак имају и бројеве, знам).

  6. 11

    Здраво,

    Трудим се да ово користим у постојећем облику у реалном времену, али изгледа да ово не важи у стварном времену попут провере снаге ваше лозинке ...

    Или сам једноставно толико бесмислен, а то ми не иде?

  7. 12

    бтв, стварно ми се свиђа ово што се овде дешаваш, твоји водичи су врло једноставни, дефинитивно ћу означити овај ...

  8. 13
  9. 16
  10. 17

    Само мала корекција: Регуларни израз има додатак () + на крају. Требало би да гласи:

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

    Са првим би се прихватиле било које дужине ТЛД-а (што није суштински погрешно, као што су други истакли, али ако је то намера, израз би могао бити скраћен).

  11. 18

    Можете ли да објасните регуларни израз овог кода и како он функционише? Такође о .тест - Да ли је .тест подразумевана изјава у јавасцрипту за проверу ствари као што сте урадили у горњем коду?

  12. 19

    Ово је кратки код за изражавање е-поште-

    функција валидатеЕмаил (ид)
    {
    вар емаилПаттерн = /^[а-зА-З0-9._-]+@[а-зА-З0-9.-]+.[а-зА-З]{2,4}$/;
    врати емаилПаттерн.тест (ид);

    }
    Деепак Раи
    варанаси

  13. 20

    Ово је кратки код за изражавање е-поште-

    функција валидатеЕмаил (ид)
    {
    вар емаилПаттерн = /^[а-зА-З0-9._-]+@[а-зА-З0-9.-]+.[а-зА-З]{2,4}$/;
    врати емаилПаттерн.тест (ид);

    }
    Деепак Раи
    варанаси

  14. 21
  15. 22
  16. 23

    Хвала, али у овом регуларном изразу постоји грешка. Нисам стручњак за регуларне изразе, али пробао / ла сам путем е-поште:

    тест тест

    и прошао је регуларни израз ... Приметио сам да недостаје бекство из „.“ тако би требало да буде:

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

  17. 24
  18. 27

    Па, ово је само груба провера, али не и 100% тачна, на пример, ово би било у реду јохн_дое. @ гмаил.цом што заправо није важећа адреса е-поште (тачка није дозвољена као последњи знак у локалном делу е-поште).
    Такође би прихватила јохн…дое@гмаил.цом што је такође неваљано јер у низу не може бити више од једне тачке.

    Ово су само неке мане које сам приметио на први поглед.
    Моја намера није да се срушим само да бих указала на ово у случају да неко планира да ово користи као безбедносну проверу - недовољно сигурну.

    За информације о важећим е-маил адресама погледајте ово: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Деепак,

    Заправо, мислим да за тачку треба применити прелаз („.“). Уместо тога, ваша функција треба да буде:

    функција валидатеЕмаил (ид)
    {
    вар емаилПаттерн = /^[а-зА-З0-9._-]+@[а-зА-З0-9.-]+.[а-зА-З]{2,4}$/;
    врати емаилПаттерн.тест (ид);

    }

    У супротном, тачка би значила „било који лик“. Верујем да од таквих посебних ликова треба побећи.

    Поздрави,

    Федерицо

  20. 29

    функција валидатеЕмаил (флд) {
    вар грешка = ””;
    вар тфлд = трим (флд.валуе); // вредност поља са одсеченим размаком
    вар емаилФилтер = /^( ^^@]+@[^@.]+.[^@]*вв$/;
    вар иллеЦхарс = / [(),;: \ ”[]] /;

    иф (флд.валуе == “Унесите своју адресу е-поште”) {

    еррор = "Унесите своју адресу е-поште.н";
    } елсе иф (! емаилФилтер.тест (тфлд)) {// тестирај е-пошту на недозвољене знакове

    еррор = "Унесите важећу адресу е-поште.н";
    } елсе иф (флд.валуе.матцх (незаконити знакови)) {

    еррор = "Унесите важећу адресу е-поште.н";
    }
    повратна грешка;
    }

  21. 30

    функција валидатеЕмаил (флд) {
    вар грешка = ””;
    вар тфлд = трим (флд.валуе); // вредност поља са одсеченим размаком
    вар емаилФилтер = /^( ^^@]+@[^@.]+.[^@]*вв$/;
    вар иллеЦхарс = / [(),;: \ ”[]] /;

    иф (флд.валуе == “Унесите своју адресу е-поште”) {

    еррор = "Унесите своју адресу е-поште.н";
    } елсе иф (! емаилФилтер.тест (тфлд)) {// тестирај е-пошту на недозвољене знакове

    еррор = "Унесите важећу адресу е-поште.н";
    } елсе иф (флд.валуе.матцх (незаконити знакови)) {

    еррор = "Унесите важећу адресу е-поште.н";
    }
    повратна грешка;
    }

  22. 31

    функција валидатеЕмаил (флд) {
    вар грешка = ””;
    вар тфлд = трим (флд.валуе); // вредност поља са одсеченим размаком
    вар емаилФилтер = /^( ^^@]+@[^@.]+.[^@]*вв$/;
    вар иллеЦхарс = / [(),;: \ ”[]] /;

    иф (флд.валуе == “Унесите своју адресу е-поште”) {

    еррор = "Унесите своју адресу е-поште.н";
    } елсе иф (! емаилФилтер.тест (тфлд)) {// тестирај е-пошту на недозвољене знакове

    еррор = "Унесите важећу адресу е-поште.н";
    } елсе иф (флд.валуе.матцх (незаконити знакови)) {

    еррор = "Унесите важећу адресу е-поште.н";
    }
    повратна грешка;
    }

  23. 32

    функција валидатеЕмаил (флд) {
    вар грешка = ””;
    вар тфлд = трим (флд.валуе); // вредност поља са одсеченим размаком
    вар емаилФилтер = /^( ^^@]+@[^@.]+.[^@]*вв$/;
    вар иллеЦхарс = / [(),;: \ ”[]] /;

    иф (флд.валуе == “Унесите своју адресу е-поште”) {

    еррор = "Унесите своју адресу е-поште.н";
    } елсе иф (! емаилФилтер.тест (тфлд)) {// тестирај е-пошту на недозвољене знакове

    еррор = "Унесите важећу адресу е-поште.н";
    } елсе иф (флд.валуе.матцх (незаконити знакови)) {

    еррор = "Унесите важећу адресу е-поште.н";
    }
    повратна грешка;
    }

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

Шта ви мислите?

Ова страница користи Акисмет како би смањила нежељену пошту. Сазнајте како се ваш коментар обрађује.