Priksa Alamat Email nganggo JavaScript lan Ekspresi Biasa

Sawetara wektu kepungkur aku masang a Checker Kekuwatan Sandi nggunakake JavaScript lan Ekspresi Biasa. Ing cathetan sing padha, sampeyan uga bisa mriksa struktur alamat email sing nggunakake metodologi ekspresi reguler (regex) sing padha.

Yen elemen formulir sampeyan duwe id = "alamat email" lan sampeyan nambahake formulir onSubmit = "mriksa baliEmail ();“, Iki fungsi Javascript sing bisa digunakake kanggo bali tandha yen alamat email duwe struktur sing bener utawa ora:

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

Fungsi kasebut divalidasi isi email menyang filter. Yen bandhingane gagal, bakal muncul tandha lan ngasilake fokus maneh menyang kolom alamat email!

41 Komentar

  1. 1

    Kanggo formulir kanthi pirang-pirang alamat email, luwih becik nindakake class="emailaddress". Yen sampeyan duwe perpustakaan prototype.js (http://www.prototypejs.org) kalebu ing kaca sampeyan bisa nindakake kaya iki:

    var valid = bener;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$('.emaildress').masing-masing(fungsi(email) {
    yen (!filter.test(email.value)) {
    tandha(?Mangga wenehi alamat email sing bener?);
    email.fokus;
    sah = salah;
    }
    });
    bali sah;

  2. 5
  3. 7

    Aku seneng ide kasebut, nanging aku bakal ragu-ragu nggunakake ekspresi reguler tartamtu iki tanpa katrangan babagan alamat email sing sah sing ora ditampa lan alamat ilegal sing diidini.

    Kanggo conto ekspresi reguler sing nindakake tugas sing prayoga bebarengan karo panjelasan babagan kasus sing ora kalebu, deleng iki:

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

    Preferensi pribadiku yaiku nutupi umume kasus sing gampang lan menehi peringatan kanggo kabeh liyane tinimbang nolak. Yen Bob pancene pengin ngirim bob@com.museum tinimbang bob@museum.com, kok ora nglilani?

    • 8

      Hi Reg,

      Sampeyan bisa nyoba Regex nggunakake a Tester Regex Online.

      Kajaba iku, mesthi luwih akeh sing bisa ditindakake yen sampeyan pengin njamin alamat email sah miturut RFC.

      Ana sawetara alasan kanggo ora ngidini wong ngetik alamat email sing ora bener:
      1. Padha bakal njaluk pegel ing sampeyan nalika email padha samesthine ora njaluk liwat – preduli saka apa utawa ora iku fault alamat iki salah ngetik.
      2. Yen com.museum minangka domain sing bener lan, ayo ngomong, Yahoo! dioperasikake - alamat email apa wae sing mumbul bakal duwe pengaruh negatif marang reputasi perusahaan sampeyan kanggo pangiriman email. Iki bisa nyebabake kabeh email perusahaan sampeyan diblokir.
      3. Yen panyedhiya layanan email ngidini sampeyan mlebu bob@com.museum, sampeyan uga bakal mbayar saben email sing dikirim menyang alamat email kasebut nganti dheweke mbatalake alamat kasebut amarga mumbul. Aku bakal nyingkiri ESP sing ngidini alamat email sing ora bener kaya ngono - dheweke mung njupuk dhuwit sampeyan!

      Thanks kanggo mandheg!
      Doug

  4. 9
  5. 10

    Ana cara sing luwih gampang kanggo nulis ekspresi:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    – Kanthi modifier final /i ora perlu kanggo nunjukaké sawetara huruf gedhe.
    – Aku ora ngerti apa-apa TLD karo nomer ing.
    Ing cathetan sisih, aku ngidini TLD nganti 6 karakter; anyar teka ajeg lan sampeyan ora ngerti (uga, somme gedhe-gedhe mangsa malah bisa duwe nomer ing, Aku ngerti).

  6. 11

    Hi there,

    Aku nyoba nggunakake iki ing wangun sing wis ana ing wektu nyata, nanging iki ora katon validasi ing wektu nyata kaya pemeriksa kekuatan sandi ...

    Utawa, apa aku mung ora ngerti, lan ora bisa digunakake kanggo aku?

  7. 12

    btw, aku seneng banget karo apa sing sampeyan lakoni ing kene, tutorial sampeyan gampang banget, aku mesthi bakal menehi tetenger iki….

  8. 13
  9. 16
  10. 17

    Mung koreksi cilik: Ekspresi biasa duwe tambahan () + ing pungkasan. Sampeyan kudu maca:

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

    Kanthi sing sepisanan, TLD dawane bakal ditampa (sing ora salah kaya sing diterangake wong liya, nanging yen iki maksude, ekspresi kasebut bisa disingkat).

  11. 18

    Apa sampeyan bisa nerangake ekspresi reguler kode iki lan cara kerjane? Uga babagan .test - Apa .test statement standar ing javascript kanggo mriksa kaya sing sampeyan tindakake ing kode ing ndhuwur?

  12. 19

    Iki minangka kode cekak kanggo ekspresi email-

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

    }
    Deepak Rai
    varanasi

  13. 20

    Iki minangka kode cekak kanggo ekspresi email-

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

    }
    Deepak Rai
    varanasi

  14. 21
  15. 22
  16. 23

    Matur nuwun, nanging ana kesalahan ing regex iki. Aku dudu pakar regex, nanging aku nyoba email:

    tes@tes

    lan liwati regex ... Aku weruh iku kurang uwal saka "." dadi kudu:

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

  17. 24
  18. 27

    Inggih, iki mung mriksa kasar nanging ora 100% akurat, contone iki bakal oke karo john_doe.@gmail.com kang bener ora alamat e-mail bener (titik ora diijini minangka karakter pungkasan ing bagean lokal saka e-mail).
    Uga bakal nampa john…doe@gmail.com sing uga ora bener amarga ora bisa luwih saka siji titik ing urutan.

    Iki mung sawetara cacat aku weruh ing kawitan ngarsane.
    Maksudku ora bashing mung kanggo nuduhake iki yen ana wong sing ngrancang nggunakake iki minangka mriksa keamanan - ora cukup aman.

    Kanggo informasi babagan alamat e-mail sing bener, priksa iki: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Deepak,

    Bener, aku mikir sampeyan kudu ngetrapake uwal kanggo titik ("."). Dadi, fungsi sampeyan kudu, tinimbang:

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

    }

    Yen ora, titik kasebut tegese "karakter apa wae". Aku pracaya karakter khusus kuwi kudu oncat.

    Regards,

    Federico

  20. 29

    function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value); // Nilai lapangan kanthi spasi putih dipotong
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

    if (fld.value == "Ketik Alamat email sampeyan") {

    error = "Mangga ketik alamat Email sampeyan.n";
    } liya yen (!emailFilter.test(tfld)) {//test email kanggo karakter ilegal

    error = "Mangga ketik alamat email sing bener.n";
    } liya yen (fld.value.match(illegalChars)) {

    error = "Mangga ketik alamat email sing bener.n";
    }
    kesalahan bali;
    }

  21. 30

    function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value); // Nilai lapangan kanthi spasi putih dipotong
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

    if (fld.value == "Ketik Alamat email sampeyan") {

    error = "Mangga ketik alamat Email sampeyan.n";
    } liya yen (!emailFilter.test(tfld)) {//test email kanggo karakter ilegal

    error = "Mangga ketik alamat email sing bener.n";
    } liya yen (fld.value.match(illegalChars)) {

    error = "Mangga ketik alamat email sing bener.n";
    }
    kesalahan bali;
    }

  22. 31

    function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value); // Nilai lapangan kanthi spasi putih dipotong
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

    if (fld.value == "Ketik Alamat email sampeyan") {

    error = "Mangga ketik alamat Email sampeyan.n";
    } liya yen (!emailFilter.test(tfld)) {//test email kanggo karakter ilegal

    error = "Mangga ketik alamat email sing bener.n";
    } liya yen (fld.value.match(illegalChars)) {

    error = "Mangga ketik alamat email sing bener.n";
    }
    kesalahan bali;
    }

  23. 32

    function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value); // Nilai lapangan kanthi spasi putih dipotong
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

    if (fld.value == "Ketik Alamat email sampeyan") {

    error = "Mangga ketik alamat Email sampeyan.n";
    } liya yen (!emailFilter.test(tfld)) {//test email kanggo karakter ilegal

    error = "Mangga ketik alamat email sing bener.n";
    } liya yen (fld.value.match(illegalChars)) {

    error = "Mangga ketik alamat email sing bener.n";
    }
    kesalahan bali;
    }

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

Apa sampeyan mikir?

Situs iki nggunakake Akismet kanggo ngurangi spam. Sinau babagan proses data sampeyan.