Elektron pochta manzilini JavaScript va oddiy iboralar bilan tekshiring

Biroz oldin men JavaScript va oddiy iboralar yordamida parolning mustahkamligini tekshiruvchi. Xuddi shu yozuvda siz elektron pochta manzilining tuzilishini bir xil oddiy ifoda (regex) metodologiyasidan foydalangan holda tekshirishingiz mumkin.

Agar sizning ariza elementingizda id = "email manzili" va siz shaklni qo'shasiz onSubmit = ”return checkEmail ();", Bu Javascript funktsiyasidir, agar siz elektron pochta manzilingiz tuzilishga ega bo'lsa yoki yo'q bo'lsa, ogohlantirishni qaytarishingiz mumkin:

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

Funktsiya elektron pochtaning tarkibini filtr bilan tasdiqlaydi. Agar taqqoslash muvaffaqiyatsiz bo'lsa, u ogohlantiruvchi signalni ochadi va elektron pochta manzili maydoniga qaytadi!

41 Comments

  1. 1

    Bir nechta elektron pochta manziliga ega bo'lgan shakllar uchun class = ”emailaddress” ni bajarish yaxshi bo'lar edi. Agar sizda prototype.js kutubxonasi bo'lsa (http://www.prototypejs.org) sahifaga kiritilgan bo'lsa, siz shunday bir narsa qilishingiz mumkin:

    var valid = rost;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$ ('. email manzili'). har biri (funktsiya (elektron pochta) {
    agar (! filter.test (email.value)) {
    ogohlantirish (? Iltimos, to'g'ri elektron pochta manzilini ko'rsating?);
    email.focus;
    haqiqiy = noto'g'ri;
    }
    });
    qaytish amal qiladi;

  2. 5
  3. 7

    Menga bu g'oya yoqadi, lekin men ushbu odatiy iborani qaysi qonuniy elektron pochta manzillarini qabul qilmasligini va qaysi noqonuniy manzillarga yo'l qo'yishini tavsifisiz qabul qilishda ikkilanaman.

    Qaysi holatlar qamrab olinmasligini tushuntirish bilan bir qatorda munosib ishni bajaradigan odatiy iboraga misol uchun quyidagini ko'ring:

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

    Mening shaxsiy imtiyozim - oddiy ishlarning aksariyatini qamrab olish va rad etish o'rniga hamma narsalar uchun ogohlantirish. Agar Bob chindan ham topshirishni xohlasa bob@com.museum dan ko'ra bob@museum.com, nega unga yo'l qo'ymaslik kerak?

    • 8

      Salom Reg,

      An yordamida Regex-ni sinab ko'rishingiz mumkin Onlayn Regex sinov qurilmasi.

      Bundan tashqari, agar siz buni ta'minlashni istasangiz, albatta, juda ko'p narsalar qilish mumkin elektron pochta manzili RFCga muvofiq amal qiladi.

      Yaroqsiz elektron pochta manzilini kimdir kiritishiga yo'l qo'ymaslikning bir nechta sabablari bor:
      1. Ular sizning elektron pochta manzilingiz kutilmagan elektron pochta orqali etib bo'lmaganda, ular sizni g'azablantiradi - bu sizning aybingiz bo'lganligidan qat'iy nazar, manzil noto'g'ri kiritilgan.
      2. Agar com.museum tegishli domen bo'lsa va aytaylik, Yahoo! uni boshqargan - qaytarilgan elektron pochta manzili kompaniyangizning elektron pochta orqali etkazib berish obro'siga salbiy ta'sir ko'rsatishi mumkin. Bu sizning kompaniyangizning barcha elektron pochtalarini bloklashiga olib kelishi mumkin.
      3. Agar sizning elektron pochta provayderingiz sizga kirishga ruxsat bergan bo'lsa bob@com.museum, shuningdek, ushbu elektron pochta manziliga yuborilgan har bir elektron pochta xabarini, ular qaytish sababli ushbu manzilni bekor qilgunga qadar to'laysiz. Yaroqsiz elektron pochta manziliga yo'l qo'yadigan har qanday ESP-dan qochib qutulaman - ular sizning pulingizni olishadi!

      To'xtatganingiz uchun tashakkur!
      Doug

  4. 9
  5. 10

    Ifodani yozishning juda oddiy usuli bor:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - Oxirgi modifikator bilan i katta harflar qatorini ko'rsatishga hojat yo'q.
    - Men hech narsani bilmayman TLD undagi raqamlar bilan.
    Yon yozuvda men TLD-ga 6 ta belgi bilan ruxsat beraman; yangilari muntazam ravishda kelib turadi va siz hech qachon bilmay qolasiz (kelajakda kelajakda raqamlar ham bo'lishi mumkin, men bilaman).

  6. 11

    Salom,

    Men buni mavjud shaklda real vaqt rejimida ishlatishga ishonaman, lekin bu sizning parolingiz kuchini tekshiruvchisi kabi real vaqtda tasdiqlanmayapti ...

    Yoki, men shunchaki beparvo emasmanmi va bu men uchun ishlamaydi?

  7. 12
  8. 13
  9. 16
  10. 17

    Faqat kichik tuzatish: Muntazam iboraning oxirida qo'shimcha () + bo'ladi. O'qilishi kerak:

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

    Birinchisi bilan har qanday uzunlikdagi TLDlar qabul qilinadi (bu boshqalar ta'kidlaganidek, ichki tomondan noto'g'ri emas, ammo agar bu niyat bo'lsa, bu ifoda qisqartirilishi mumkin).

  11. 18

    Iltimos, ushbu kodning muntazam ifodasini va uning qanday ishlashini tushuntirib bera olasizmi? .Test haqida ham - Yuqoridagi kodda bo'lgani kabi narsalarni tekshirish uchun JavaScript-dagi .test sukut bo'yicha bayonotmi?

  12. 19

    Bu elektron pochta manzili uchun qisqa kod -

    funktsiya validateEmail (id)
    {
    var emailPattern = /^(a-zA-Z0-9._-................+@(a-zA-Z0-9.- ]++ [a-zA-Z] {2,4}$/;
    emailPattern.test (id) ni qaytarish;

    }
    Dipak Ray
    varanasi

  13. 20

    Bu elektron pochta manzili uchun qisqa kod -

    funktsiya validateEmail (id)
    {
    var emailPattern = /^(a-zA-Z0-9._-................+@(a-zA-Z0-9.- ]++ [a-zA-Z] {2,4}$/;
    emailPattern.test (id) ni qaytarish;

    }
    Dipak Ray
    varanasi

  14. 21
  15. 22
  16. 23

    Rahmat, lekin bu regexda xato bor. Men regex mutaxassisi emasman, lekin elektron pochtani sinab ko'rdim:

    test @ test

    va u regexdan o'tib ketdi ... Men "" dan qochib qutulolmasligini payqadim. shunday bo'lishi kerak:

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

  17. 24
  18. 27

    Xo'sh, bu shunchaki qo'pol tekshiruv, ammo 100% aniq emas, masalan, bu yaxshi bo'ladi john_doe. @ gmail.com aslida haqiqiy elektron pochta manzili emas (elektron pochtaning mahalliy qismida oxirgi belgi sifatida nuqta qo'yilmaydi).
    Shuningdek, u qabul qiladi john…doe@gmail.com bu ham yaroqsiz, chunki ketma-ketlikda bir nechta nuqta bo'lishi mumkin emas.

    Bular bir qarashda ko'rgan ba'zi kamchiliklarim.
    Mening niyatim, agar kimdir buni xavfsizlik tekshiruvi sifatida ishlatishni rejalashtirayotgan bo'lsa, buni ishora qilmoqchi emasman - etarli darajada xavfsiz emas.

    Elektron pochta manzillari to'g'risida ma'lumot olish uchun quyidagilarni tekshiring: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Deepak,

    Aslida, siz nuqta uchun qochishni qo'llashingiz kerak deb o'ylayman ("."). Shunday qilib, sizning vazifangiz quyidagicha bo'lishi kerak:

    funktsiya validateEmail (id)
    {
    var emailPattern = /^(a-zA-Z0-9._-................+@(a-zA-Z0-9.- ]++ [a-zA-Z] {2,4}$/;
    emailPattern.test (id) ni qaytarish;

    }

    Aks holda, nuqta "har qanday belgi" degan ma'noni anglatadi. Bunday maxsus belgilardan qochib qutulish kerak deb o'ylayman.

    Regards,

    Federico

  20. 29

    funktsiya validateEmail (fld) {
    var error = "";
    var tfld = trim (fld.value); // bo'shliq kesilgan maydon qiymati
    var emailFilter = /^ [^@ ]+@(^@. :+. [^@] *$$/;
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == "Elektron pochta manzilingizni kiriting") {

    error = "Iltimos, elektron pochta manzilingizni kiriting .n";
    } else if (! emailFilter.test (tfld)) {// elektron pochtani noqonuniy belgilar uchun sinab ko'ring

    error = "Iltimos, to'g'ri elektron pochta manzilini kiriting. n";
    } else if (fld.value.match (illegalChars)) {

    error = "Iltimos, to'g'ri elektron pochta manzilini kiriting. n";
    }
    qaytish xatosi;
    }

  21. 30

    funktsiya validateEmail (fld) {
    var error = "";
    var tfld = trim (fld.value); // bo'shliq kesilgan maydon qiymati
    var emailFilter = /^ [^@ ]+@(^@. :+. [^@] *$$/;
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == "Elektron pochta manzilingizni kiriting") {

    error = "Iltimos, elektron pochta manzilingizni kiriting .n";
    } else if (! emailFilter.test (tfld)) {// elektron pochtani noqonuniy belgilar uchun sinab ko'ring

    error = "Iltimos, to'g'ri elektron pochta manzilini kiriting. n";
    } else if (fld.value.match (illegalChars)) {

    error = "Iltimos, to'g'ri elektron pochta manzilini kiriting. n";
    }
    qaytish xatosi;
    }

  22. 31

    funktsiya validateEmail (fld) {
    var error = "";
    var tfld = trim (fld.value); // bo'shliq kesilgan maydon qiymati
    var emailFilter = /^ [^@ ]+@(^@. :+. [^@] *$$/;
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == "Elektron pochta manzilingizni kiriting") {

    error = "Iltimos, elektron pochta manzilingizni kiriting .n";
    } else if (! emailFilter.test (tfld)) {// elektron pochtani noqonuniy belgilar uchun sinab ko'ring

    error = "Iltimos, to'g'ri elektron pochta manzilini kiriting. n";
    } else if (fld.value.match (illegalChars)) {

    error = "Iltimos, to'g'ri elektron pochta manzilini kiriting. n";
    }
    qaytish xatosi;
    }

  23. 32

    funktsiya validateEmail (fld) {
    var error = "";
    var tfld = trim (fld.value); // bo'shliq kesilgan maydon qiymati
    var emailFilter = /^ [^@ ]+@(^@. :+. [^@] *$$/;
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == "Elektron pochta manzilingizni kiriting") {

    error = "Iltimos, elektron pochta manzilingizni kiriting .n";
    } else if (! emailFilter.test (tfld)) {// elektron pochtani noqonuniy belgilar uchun sinab ko'ring

    error = "Iltimos, to'g'ri elektron pochta manzilini kiriting. n";
    } else if (fld.value.match (illegalChars)) {

    error = "Iltimos, to'g'ri elektron pochta manzilini kiriting. n";
    }
    qaytish xatosi;
    }

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

Siz nima deb o'ylaysiz?

Ushbu sayt spamni kamaytirish uchun Akismet-dan foydalanadi. Fikringiz ma'lumotlarining qanday ishlashini bilib oling.