JavaScript və Adi ifadələrlə elektron poçt ünvanınızı yoxlayın

Bir müddət əvvəl a JavaScript və Normal İfadələrdən istifadə edərək Şifrə Gücünün Yoxlanışı. Eyni qeyddə, eyni normal ifadə (regex) metodologiyasından istifadə edərək bir e-poçt adresinin quruluşunu da yoxlaya bilərsiniz.

Forma elementiniz varsa id = "emailaddress" və bir forma əlavə edin onSubmit = ”return checkEmail ();“, Bu e-poçt ünvanı etibarlı bir quruluşa sahibdirsə yoxsa bir xəbərdarlıq qaytarmaq üçün istifadə edə biləcəyiniz bir Javascript funksiyadır:

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

Funksiya, e-poçtun məzmununu filtrlə təsdiqləyir. Müqayisə uğursuz olarsa, bir xəbərdarlıq açılır və fokusu yenidən e-poçt ünvanı sahəsinə qaytarır!

41 Şərhlər

  1. 1

    For forms with multiple email addresses, it would be good to do class=”emailaddress”. If you have the prototype.js library (http://www.prototypejs.org) səhifəyə daxil olaraq belə bir şey edə bilərsiniz:

    var valid = true;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$ ('. emailaddress'). hər biri (function (email) {
    əgər (! filter.test (email.value)) {
    uyarı (? Xahiş edirəm etibarlı bir e-poçt ünvanı verin?);
    email.focus;
    etibarlı = yalan;
    }
    });
    qayıdış etibarlı;

  2. 5
  3. 7

    Fikri bəyənirəm, amma hansının qanuni e-poçt ünvanını qəbul etmədiyi və hansı qeyri-qanuni ünvana icazə verdiyi təsvir olunmadan bu müntəzəm ifadəni qəbul etməkdə tərəddüd edərdim.

    Hansı halları əhatə etmədiyinin izahı ilə yanaşı layiqli bir iş görən müntəzəm bir ifadə nümunəsi üçün buna baxın:

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

    Şəxsi seçimim sadə halların əksəriyyətini əhatə etmək və rədd etmək əvəzinə hər şey üçün bir xəbərdarlıq etməkdir. Bob həqiqətən istəyirsə təqdim etsin bob@com.museum daha çox bob@museum.com, niyə ona icazə vermirsən?

    • 8

      Salam Reg,

      Bir istifadə edərək Regex'i sınaqdan keçirə bilərsiniz Onlayn Regex Tester.

      Ayrıca, təmin etmək istəsəniz edilə bilən daha çox şey var e-mail RFC-yə uyğun olaraq etibarlıdır.

      Birinin etibarsız bir e-poçt ünvanı daxil etməsinə icazə verməməyin bir neçə səbəbi var:
      1. They will get annoyed at you when the email they expected doesn’t get through – regardless of whether or not it was your fault the address was entered incorrectly.
      2. If com.museum was a valid domain and, let’s say, Yahoo! operated it – any email address that bounced would have a negative impact on your company’s reputation for email delivery. This could lead to all of your company’s email being blocked.
      3. If your email service provider allowed you to enter bob@com.museum, you’d also pay for each email sent to that email address until they unsubscribed that address due to bounces. I would steer clear of any ESP that would allow an invalid email address like that – they’re just taking your money!

      Durdurduğunuz üçün təşəkkür edirik!
      Doug

  4. 9
  5. 10

    İfadəni yazmağın çox sadə yolu var:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - Son modifikator / i ilə yuxarı iş aralığını göstərməyə ehtiyac yoxdur.
    - Heç birini bilmirəm TLD içərisindəki rəqəmlərlə.
    Bir qeyddə TLD-yə 6 işarəyə qədər icazə verirəm; yeniləri mütəmadi olaraq gəlir və sən heç bilmirsən (gələcəkdə bəzilərinin içərisində rəqəmlər də ola bilər, bilirəm).

  6. 11

    Salam,

    Bunu real vaxt rejimində mövcud formada istifadə etməyi düşünürəm, ancaq parol möhkəmliyi yoxlayıcısı kimi real vaxtda təsdiqlənmir ...

    Yoxsa mən yalnız o qədər ağılsızam və bu mənim üçün işləmir?

  7. 12

    btw, burda getdiklərinizi çox bəyənirəm, dərsləriniz çox sadədir, mən mütləq buranı işarələyəcəm ....

  8. 13
  9. 16
  10. 17

    Yalnız kiçik bir düzəliş: Normal ifadənin sonunda əlavə () + var. Oxunmalıdır:

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

    Birincisi ilə hər hansı bir uzunluqda TLD qəbul ediləcək (bu, başqalarının da qeyd etdiyi kimi daxili cəhətdən səhv deyildir, amma bu niyyət olsa ifadəni qısalda bilər).

  11. 18

    Xahiş edirəm bu kodun müntəzəm ifadəsini və necə işlədiyini izah edə bilərsiniz? .Test haqqında da - .test yuxarıdakı kodda etdiyiniz kimi şeyləri yoxlamaq üçün javascriptdəki standart bir bəyanatdır?

  12. 19

    Bu e-poçt ifadəsi üçün qısa bir koddur.

    funksiya doğrulamaEmail (id)
    {
    var emailPattern = /^(a-zA-Z0-9._-................+@ [a-zA-Z0-9.-] ++ [a-zA-Z] {2,4}$/;
    emailPattern.test (id) qayıt;

    }
    Deepak Rai
    varanasi

  13. 20

    Bu e-poçt ifadəsi üçün qısa bir koddur.

    funksiya doğrulamaEmail (id)
    {
    var emailPattern = /^(a-zA-Z0-9._-................+@ [a-zA-Z0-9.-] ++ [a-zA-Z] {2,4}$/;
    emailPattern.test (id) qayıt;

    }
    Deepak Rai
    varanasi

  14. 21
  15. 22
  16. 23

    Təşəkkürlər, amma bu regexdə bir səhv var. Mən regex mütəxəssisi deyiləm, ancaq elektron poçtu sınamışam:

    test @ test

    və regex-dən keçdi ... "" -dən qaçmağın olmadığını gördüm. belə olmalıdır:

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

  17. 24
  18. 27

    Yaxşı, bu sadəcə kobud bir yoxlama, lakin 100% dəqiq deyil, məsələn bu yaxşı olar john_doe. @ gmail.com əslində etibarlı bir e-poçt ünvanı deyil (e-poçtun yerli hissəsində son bir simvol kimi nöqtəyə icazə verilmir).
    Həm də qəbul edərdim john…doe@gmail.com bu da etibarsızdır, çünki ardıcıllıqla birdən çox nöqtə ola bilməz.

    Bunlar ilk baxışda gördüyüm bəzi qüsurlardır.
    Niyyətim, bunu kiminsə təhlükəsizlik yoxlaması kimi istifadə etməyi planlaşdırdığı halda bunu qeyd etmək üçün xəyanət etmək deyil - kifayət qədər etibarlı deyil.

    Etibarlı e-poçt ünvanları haqqında məlumat üçün buraya baxın: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Deepak,

    Əslində nöqtə üçün qaçış tətbiq etməlisiniz (“.”). Beləliklə, funksiyanız bunun yerinə olmalıdır:

    funksiya doğrulamaEmail (id)
    {
    var emailPattern = /^(a-zA-Z0-9._-................+@ [a-zA-Z0-9.-] ++ [a-zA-Z] {2,4}$/;
    emailPattern.test (id) qayıt;

    }

    Əks təqdirdə, nöqtə "hər hansı bir xarakter" deməkdir. İnanıram ki, bu cür xüsusi simvollardan qaçmaq lazımdır.

    Regards,

    Federico

  20. 29

    funksiya validateEmail (fld) {
    var error = "";
    var tfld = trim(fld.value); // value of field with whitespace trimmed off
    var emailFilter = /^(^@ :+@(^@. :+.(^@ :*ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == “E-poçt adresinizi daxil edin”) {

    error = “Xahiş edirəm e-poçt adresinizi daxil edin.n”;
    } else if (!emailFilter.test(tfld)) { //test email for illegal characters

    error = “Xahiş edirəm etibarlı bir e-poçt ünvanı daxil edin.n”;
    } başqa halda (fld.value.match (illegalChars)) {

    error = “Xahiş edirəm etibarlı bir e-poçt ünvanı daxil edin.n”;
    }
    qayıtma xətası;
    }

  21. 30

    funksiya validateEmail (fld) {
    var error = "";
    var tfld = trim(fld.value); // value of field with whitespace trimmed off
    var emailFilter = /^(^@ :+@(^@. :+.(^@ :*ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == “E-poçt adresinizi daxil edin”) {

    error = “Xahiş edirəm e-poçt adresinizi daxil edin.n”;
    } else if (!emailFilter.test(tfld)) { //test email for illegal characters

    error = “Xahiş edirəm etibarlı bir e-poçt ünvanı daxil edin.n”;
    } başqa halda (fld.value.match (illegalChars)) {

    error = “Xahiş edirəm etibarlı bir e-poçt ünvanı daxil edin.n”;
    }
    qayıtma xətası;
    }

  22. 31

    funksiya validateEmail (fld) {
    var error = "";
    var tfld = trim(fld.value); // value of field with whitespace trimmed off
    var emailFilter = /^(^@ :+@(^@. :+.(^@ :*ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == “E-poçt adresinizi daxil edin”) {

    error = “Xahiş edirəm e-poçt adresinizi daxil edin.n”;
    } else if (!emailFilter.test(tfld)) { //test email for illegal characters

    error = “Xahiş edirəm etibarlı bir e-poçt ünvanı daxil edin.n”;
    } başqa halda (fld.value.match (illegalChars)) {

    error = “Xahiş edirəm etibarlı bir e-poçt ünvanı daxil edin.n”;
    }
    qayıtma xətası;
    }

  23. 32

    funksiya validateEmail (fld) {
    var error = "";
    var tfld = trim(fld.value); // value of field with whitespace trimmed off
    var emailFilter = /^(^@ :+@(^@. :+.(^@ :*ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == “E-poçt adresinizi daxil edin”) {

    error = “Xahiş edirəm e-poçt adresinizi daxil edin.n”;
    } else if (!emailFilter.test(tfld)) { //test email for illegal characters

    error = “Xahiş edirəm etibarlı bir e-poçt ünvanı daxil edin.n”;
    } başqa halda (fld.value.match (illegalChars)) {

    error = “Xahiş edirəm etibarlı bir e-poçt ünvanı daxil edin.n”;
    }
    qayıtma xətası;
    }

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

Siz nə düşünürsünüz?

Bu sayt spam azaldılması üçün Akismet istifadə edir. Yorumunuzun necə işləndiyini öyrənin.