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 macem-macem alamat email, luwih becik nggawe kelas = ”alamat email”. Yen sampeyan duwe prototipe.js perpustakaan (http://www.prototypejs.org) kalebu ing kaca sampeyan bisa nindakake perkara kaya iki:

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

  2. 5
  3. 7

    Aku seneng ide kasebut, nanging aku bakal ragu-ragu nganggo ekspresi reguler khusus kasebut tanpa katrangan alamat email sing ora ditampa lan alamat ilegal sing diidini.

    Contone saka ekspresi reguler sing nindakake tugas sing apik lan uga panjelasan sing ora kalebu kasus kasebut, deleng iki:

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

    Preferensi pribadi sampeyan yaiku nutupi sebagian besar kasus sing gampang lan menehi peringatan kanggo kabeh perkara tinimbang nolak. Yen Bob pengin banget kirim bob@com.museum tinimbang bob@museum.com, kenapa ora nglilani dheweke?

    • 8

      Hai Reg,

      Sampeyan bisa nyoba nggunakake Regex Tester Regex Online.

      Kajaba iku, mesthine kudu akeh sing bisa ditindakake yen sampeyan pengin nggawe alamat email bener cocog karo RFC.

      Ana sawetara alasan supaya ora ngidini wong ngetik alamat email sing ora valid:
      1. Dheweke bakal nesu marang sampeyan nalika email sing diarepake ora bisa ditrapake - preduli sampeyan salah utawa ora alamat kasebut salah dilebokake.
      2. Yen com.museum minangka domain sing bener lan, umpamane, Yahoo! dioperasikake - alamat email apa wae sing bakal entuk pengaruh negatif marang reputasi perusahaan sampeyan kanggo ngirim email. Iki bisa nyebabake kabeh email perusahaan sampeyan diblokir.
      3. Yen panyedhiya layanan email sampeyan ngidini sampeyan mlebu bob@com.museum, sampeyan uga bakal mbayar saben email sing dikirim menyang alamat email nganti ora langganan alamat kasebut amarga mumbul. Aku bakal ngilangi ESP apa wae sing bakal ngidini alamat email sing ora valid kaya ngono - dheweke mung njupuk dhuwit sampeyan!

      Thanks kanggo mandheg!
      Doug

  4. 9
  5. 10

    Ana cara sing luwih gampang kanggo nulis ungkapan:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - Kanthi modifikasi pungkasan / aku ora prelu nunjukake jajaran kasus ndhuwur.
    - Aku ora ngerti TLD karo nomer ing.
    Ing cathetan, aku ngidini TLD nganti 6 karakter; sing anyar teka kanthi rutin lan sampeyan ora ngerti (uga, somme sing bisa uga ana nomer kasebut, aku ngerti).

  6. 11

    Hi there,

    Aku nyoba nggunakake iki ing formulir sing ana ing wektu nyata, nanging iki ora bisa ditrapake nalika realtime kaya pamriksa kekuwatan tembung sandhi…

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

  7. 12

    btw, aku seneng banget karo apa sing sampeyan lakoni ing kene, tutorial sampeyan gampang banget, aku bakal menehi bookmark kanthi bener….

  8. 13
  9. 16
  10. 17

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

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

    Kanthi sing pertama, TLD bakal ditampa (sing ora salah ing intrinsecally kaya sing wis dituduhake wong liya, nanging yen ana niat, ekspresi kasebut bisa dicekak).

  11. 18

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

  12. 19

    Iki kode cekak kanggo ekspresi email-

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

    }
    Deepak Rai
    varanasi

  13. 20

    Iki kode cekak kanggo ekspresi email-

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

    }
    Deepak Rai
    varanasi

  14. 21
  15. 22
  16. 23

    Thanks, nanging ana kesalahan ing regex iki. Aku dudu ahli regex, nanging aku nyoba email:

    tes @ tes

    lan ngliwati regex ... Aku ngerti yen ora bisa uwal saka "." mula kudune:

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

  17. 24
  18. 27

    Iki mung priksa kasar nanging ora akurat 100%, contone, ora apa-apa john_doe. @ gmail.com sing sejatine dudu alamat email sing bener (dot ora diidini dadi karakter terakhir ing bagean email lokal).
    Uga bakal nampa john…doe@gmail.com sing uga ora valid amarga ora bisa ana luwih saka siji titik ing urutan.

    Iki mung sawetara cacat sing aku ngerteni sadurunge.
    Maksudku ora mandheg mung kanggo nuduhake iki yen ana wong sing arep nggunakake iki minangka mriksa keamanan - ora cukup aman.

    Kanggo info babagan alamat email sing bener priksa iki: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Deepak,

    Sejatine, aku mikir sampeyan kudu nglamar titik kasebut ("."). Dadi, fungsi sampeyan kudu:

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

    }

    Yen ora, titik kasebut tegese "karakter apa wae". Aku yakin karakter khusus kasebut kudu uwal.

    Regards,

    Federico

  20. 29

    fungsi validateEmail (fld) {
    var error = "";
    var tfld = motong (fld.value); // regane lapangan kanthi ruang putih dipotong
    var emailFilter = /^[ ###@ Ingles+@[^@.iwan+.[^@gris*ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

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

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

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

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

  21. 30

    fungsi validateEmail (fld) {
    var error = "";
    var tfld = motong (fld.value); // regane lapangan kanthi ruang putih dipotong
    var emailFilter = /^[ ###@ Ingles+@[^@.iwan+.[^@gris*ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

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

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

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

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

  22. 31

    fungsi validateEmail (fld) {
    var error = "";
    var tfld = motong (fld.value); // regane lapangan kanthi ruang putih dipotong
    var emailFilter = /^[ ###@ Ingles+@[^@.iwan+.[^@gris*ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

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

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

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

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

  23. 32

    fungsi validateEmail (fld) {
    var error = "";
    var tfld = motong (fld.value); // regane lapangan kanthi ruang putih dipotong
    var emailFilter = /^[ ###@ Ingles+@[^@.iwan+.[^@gris*ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

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

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

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

    error = "Mangga lebokake 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.