Cara Menggunakan Regex Untuk Validasi Email di PHP
![]() |
| Regular Expression |
Dimana script tersebut hanya mengecek panjang string tidak mengecek awal string, tanda @, tanda . dan sebagainya. Untuk mengecek kevalidan email kita dapat menggunakan pola regex seperti berikut:
^[a-zA-Z0-9_\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9_\-\.]+$
Pola pertama yaitu ^[a-zA-Z0-9_\-]+ artinya “email setidaknya diawali satu karakter yang berupa huruf, angka, _(underscore), tanda – (minus), atau kombinasi dari semua itu”. Kita menggunakan tanda \ didepan – karena minus merupakan karakter spesial. Pola kedua @[a-zA-Z0-9\-]+ artinya “harus ada simbol @ lalu setidaknya ada huruf, angka atau tanda ( - ).
Pola kedua ini untuk nama hosting. Pola ketiga \.[a-zA-Z0-9_\-\.]+$ artinya “harus ada tanda . lalu setidaknya ada huruf, angka, atau titik lain jika diperlukan sampai akhir dari string.
Pola yang terakhir ini untuk .com, .co.id dan sebagainya. Meskipun tidak 100% dapat memfilter email. Tapi pola seperti ini setidaknya akan mempermudah penanganan situasi.
| Cara mencari String dengan Regex |
Mencari string merupakan pekerjaan tujuan utama dari pembuatan pola regex. PHP memiliki
dua fungsi untuk keperluan ini yaitu ereg() dan eregi(). Perbedaannya
jika ereg() membedakan huruf kecil dan huruf besar(case sensitive). eregi() tidak
membedakan huruf kecil dan huruf besar(not case sensitve). Fungsi eregi() memiliki struktur
dasar seperti berikut.
| eregi(string pola regex, string sumber, [array]) |
Fungsi akan akan mencari pola regex yang diinginkan pada string sumber. Parameter 3 bersifat opsional. PENERAPAN TEORI EREGI(). Tambahkan kode validasi email berikut ini.
| //cek panjang string if (strlen($nama) < 3) { echo "<b>Masa, nama kok kurang dari 3 huruf</b>"; exit; } elseif (strlen($email) < 6) { echo "<b>Email anda tidak valid</b>"; exit; } elseif (strlen($pesan) < 10) { echo "<b>Komentar terlalu pendek</b>"; exit; } //Tambah kode berikut dibawah dari kode diatas tadi. //cek kevalidan email if (!eregi('^[a-zA-Z0-9_\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9_\-\.]+$', $email)) { exit ('<b>Email Tidak Valid</b>'); } |
Menjelaskan penggunaan fungsi eregi() saja. Lihatlah cuplikan script berikut
if (!eregi('^[a-zA-Z0-9_\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9_\-\.]+$', $email))
Kita gunakan statemen if untuk menentukan kondisi. Karena didepan eregi terdapat tanda ! (seru) yang berarti jika ada kesalahan atau tidak cocok. Jadi if akan mengeksekusi blok kode jika memang ada kesalahan atau pola tidak cocok dengan input dari user. exit('Email Tidak Valid'); Perintah exit juga dapat diisi parameter berupa string. Mode seperti diatas lebih singkat dibanding menulis dua perintah sekaligus yaitu echo dan exit.
| Baca juga : | Cara menggunakan operator Aritmatika di PHP - Website Pemula 4 |
| Cara membuat tabel di HTML - Website Pemula 3 | |
| Cara manipulasi Font dan Link - Website Pemula 2 | |
| Jenis tag HTML dan Fungsinya - Website Pemula1 |
