Kali ini gw akan sedikit membahas mengenai regular expression / regex. Oh ya, untuk mengetahui penjelasan regular expression silahkan baca aja disini. Jika mau berbicara lebih simple maka gw akan sedikit mengutip disini bahwa sebenarnya regular expression merupakan sebuah pola yang menyediakan cara yang ringkas dan fleksibel untuk mengidentifikasi sebuah string / teks. Dengan regex maka pola tersebut akan mencocokan dengan string yang dimasukkan apakah sudah memenuhi spesifikasi yang telah ditentukan atau belum. Nah, daripada bingung dengan penjelasan tersebut, maka langsung aja gw akan jelaskan bagaimana pola tersebut bekerja.
Pertama kita mulai dengan tag pembuka. Tag ini merupakan tag yang menentukan bahwa string tersebut memiliki awalan dan akhiran.
1 |
/^ $/ -> Tag ini menunjukkan bahwa spesifikasi string yang kita inginkan memiliki awalan dan akhiran. |
1 |
/^[a-z]$/ ->artinya adalah bahwa dalam string yang ingin dimasukkan hanya boleh memuat huruf kecil. |
Dengan melihat pola yang gw ajarkan diatas, seharusnya lo pada udah bisa donk membuat regular expression kan? Sebagai permulaan, kita akan membuat pola untuk mengecek sebuah username. Strukturnya adalah hanya dapat diisi dengan huruf besar dan kecil, angka, underscore, dan dash. Panjang karakternya sekitar 4-16 karakter. berikut strukturnya.
1 2 3 4 5 6 |
/^ $/ -> Selalu mulai dengan tag awalan dan penutup. /^[a-z]$/ -> Hanya bisa menerima huruf kecil saja. /^[a-zA-Z]$/ -> Hanya bisa menerima huruf kecil dan besar. /^[a-zA-Z0-9]$/ ->Hanya bisa menerima huruf kecil, besar dan angka. /^[a-zA-Z-0-9_-]$/ ->Yapz, sekarang semua syarat penulisan sudah terpenuhi ( eh belum deng). Kita masih butuh panjang karakter, bagaimana cara penulisannya? /^[a-zA-Z0-9_-]{4,16}$/ -> Nah coba deh pake ini, pasti manjur hehehe.. |
1 |
if(!username.match(/^[a-zA-Z0-9_-]{4,16}$/)) -> username merupakan variabel yang mengambil value dari input text. artinya jika username tidak sesuai dengan pattern yang kita tentukan maka lakukan sesuatu. |
1 2 3 |
$username = $_POST['username']; $regex = "/^[a-zA-Z0-9_-]{4,16}$/"; if(preg_match($regex, $username)) -> artinya jika username tidak sesuai dengan pattern yang kita tentukan maka lakukan sesuatu. |