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

    Çoxsaylı e-poçt ünvanları olan formalar üçün class=”emailaddress” etmək yaxşı olardı. Əgər prototype.js kitabxananız varsa (http://www.prototypejs.org) səhifəyə daxil olmaqla, 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})+$/;
    $$('.e-poçt ünvanı').hər biri( funksiya(e-poçt) {
    əgər (!filtr.test(e-poçt.dəyər)) {
    alert(?Lütfən düzgün e-poçt ünvanı təqdim edin?);
    email.focus;
    etibarlı = yanlış;
    }
    });
    qaytarılması etibarlıdır;

  2. 5
  3. 7

    Mən bu ideyanı bəyənirəm, lakin hansı hüquqi e-poçt ünvanlarını qəbul etmədiyini və hansı qeyri-qanuni ünvanlara icazə verdiyini təsvir etmədən bu xüsusi müntəzəm ifadəni qəbul etməkdə tərəddüd edərdim.

    Hansı halları əhatə etmədiyinə dair izahatla yanaşı, layiqli iş görən müntəzəm ifadə nümunəsi üçün buna baxın:

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

    Mənim şəxsi üstünlüklərim sadə halların əksəriyyətini əhatə etmək və rədd etməkdənsə, hər şey üçün xəbərdarlıq etməkdir. Əgər 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,

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

      Bundan əlavə, təmin etmək istəyirsinizsə, mütləq daha çox şey edilə bilər e-mail RFC-yə uyğun olaraq etibarlıdır.

      Kiminsə etibarsız e-poçt ünvanını daxil etməsinə icazə verməməyin bir neçə səbəbi var:
      1. Ünvanın səhv daxil edilməsinin sizin günahınız olub-olmamasından asılı olmayaraq, gözlədikləri e-poçt keçmədikdə sizdən əsəbiləşəcəklər.
      2. com.museum etibarlı domen olsaydı və deyək ki, Yahoo! onu idarə etdi - geri dönən hər hansı bir e-poçt ünvanı şirkətinizin e-poçt çatdırılması üçün reputasiyasına mənfi təsir göstərəcək. Bu, şirkətinizin bütün e-poçtlarının bloklanmasına səbəb ola bilər.
      3. Əgər e-poçt provayderiniz daxil olmağa icazə veribsə bob@com.museum, siz həmçinin bu e-poçt ünvanına göndərilən hər bir e-poçt üçün onlar geri dönmələr səbəbindən həmin ünvanın abunəliyini ləğv edənə qədər ödəniş edərdiniz. Mən bu kimi etibarsız e-poçt ünvanına icazə verən hər hansı ESP-dən çəkinərdim – onlar sadəcə pulunuzu alırlar!

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

  4. 9
  5. 10

    İfadə yazmağın daha sadə yolu var:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    – Son dəyişdirici /i ilə böyük hərf aralığını göstərməyə ehtiyac yoxdur.
    - Heç birindən xəbərim yoxdur TLD içində nömrələrlə.
    Əlavə olaraq qeyd edim ki, 6 simvola qədər TLD-yə icazə verirəm; yeniləri müntəzəm olaraq gəlir və siz heç vaxt bilmirsiniz (yaxşı, bəzi gələcəklərin hətta nömrələri ola bilər, bilirəm).

  6. 11

    Salam,

    Mən bunu real vaxt rejimində mövcud formada istifadə etməyə çalışıram, lakin bu, parolunuzun gücü yoxlayıcısı kimi real vaxtda təsdiqlənmir...

    Yoxsa mən bu qədər məlumatsızam və bu mənim üçün işləmir?

  7. 12

    btw, burada baş verənləri çox bəyənirəm, dərslikləriniz çox sadədir, mən mütləq bunu qeyd edəcəm….

  8. 13
  9. 16
  10. 17

    Sadəcə kiçik bir düzəliş: Normal ifadənin sonunda əlavə ()+ işarəsi var. Oxumalıdır:

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

    Birincisi ilə istənilən uzunluqlu TLD-lər qəbul ediləcək (bu, başqalarının qeyd etdiyi kimi mahiyyət etibarı ilə yanlış deyil, lakin niyyət belə olsaydı, ifadə qısaldıla bilərdi).

  11. 18

    Zəhmət olmasa bu kodun müntəzəm ifadəsini və necə işlədiyini izah edə bilərsinizmi? Həmçinin .test haqqında – Yuxarıdakı kodda etdiyiniz kimi şeyləri yoxlamaq üçün .test javascript-də defolt ifadədirmi?

  12. 19

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

    funksiyası validateEmail(id)
    {
    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/;
    e-poçtu qaytarınPattern.test(id);

    }
    Dipak Rai
    varanasi

  13. 20

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

    funksiyası validateEmail(id)
    {
    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/;
    e-poçtu qaytarınPattern.test(id);

    }
    Dipak Rai
    varanasi

  14. 21
  15. 22
  16. 23

    Təşəkkürlər, lakin bu regexdə xəta var. Mən regex mütəxəssisi deyiləm, lakin e-poçtu sınadım:

    test@test

    və o regexdən keçdi... Mən qeyd etdim ki, "." belə olmalıdır:

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

  17. 24
  18. 27

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

    Bunlar ilk baxışdan fərq etdiyim bəzi qüsurlardır.
    Məqsədim, kimsə bundan təhlükəsizlik yoxlaması kimi istifadə etməyi planlaşdırdığı halda bunu qeyd etmək deyil - kifayət qədər təhlükəsiz deyil.

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

  19. 28

    Deepak,

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

    funksiyası validateEmail(id)
    {
    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/;
    e-poçtu qaytarınPattern.test(id);

    }

    Əks halda, nöqtə "hər hansı bir simvol" mənasını verəcəkdir. İnanıram ki, belə xüsusi personajlardan qaçmaq lazımdır.

    Regards,

    Federico

  20. 29

    funksiya validateEmail(fld) {
    var error=””;
    var tfld = trim(fld.value); // boşluq kəsilmiş sahənin dəyəri
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

    əgər (fld.value == “E-poçt ünvanınızı daxil edin”) {

    error = “Lütfən, e-poçt ünvanınızı daxil edin.n”;
    } else if (!emailFilter.test(tfld)) { //qeyri-qanuni simvollar üçün e-poçtu sınayın

    error = “Lütfən düzgün e-poçt ünvanı daxil edin.n”;
    } else if (fld.value.match(illegalChars)) {

    error = “Lütfən düzgün e-poçt ünvanı daxil edin.n”;
    }
    qaytarma xətası;
    }

  21. 30

    funksiya validateEmail(fld) {
    var error=””;
    var tfld = trim(fld.value); // boşluq kəsilmiş sahənin dəyəri
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

    əgər (fld.value == “E-poçt ünvanınızı daxil edin”) {

    error = “Lütfən, e-poçt ünvanınızı daxil edin.n”;
    } else if (!emailFilter.test(tfld)) { //qeyri-qanuni simvollar üçün e-poçtu sınayın

    error = “Lütfən düzgün e-poçt ünvanı daxil edin.n”;
    } else if (fld.value.match(illegalChars)) {

    error = “Lütfən düzgün e-poçt ünvanı daxil edin.n”;
    }
    qaytarma xətası;
    }

  22. 31

    funksiya validateEmail(fld) {
    var error=””;
    var tfld = trim(fld.value); // boşluq kəsilmiş sahənin dəyəri
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

    əgər (fld.value == “E-poçt ünvanınızı daxil edin”) {

    error = “Lütfən, e-poçt ünvanınızı daxil edin.n”;
    } else if (!emailFilter.test(tfld)) { //qeyri-qanuni simvollar üçün e-poçtu sınayın

    error = “Lütfən düzgün e-poçt ünvanı daxil edin.n”;
    } else if (fld.value.match(illegalChars)) {

    error = “Lütfən düzgün e-poçt ünvanı daxil edin.n”;
    }
    qaytarma xətası;
    }

  23. 32

    funksiya validateEmail(fld) {
    var error=””;
    var tfld = trim(fld.value); // boşluq kəsilmiş sahənin dəyəri
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

    əgər (fld.value == “E-poçt ünvanınızı daxil edin”) {

    error = “Lütfən, e-poçt ünvanınızı daxil edin.n”;
    } else if (!emailFilter.test(tfld)) { //qeyri-qanuni simvollar üçün e-poçtu sınayın

    error = “Lütfən düzgün e-poçt ünvanı daxil edin.n”;
    } else if (fld.value.match(illegalChars)) {

    error = “Lütfən düzgün e-poçt ünvanı daxil edin.n”;
    }
    qaytarma 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.