Kamis, 02 April 2009

Regular Expression (RegExp)

Regular Expression (RegExp) adalah suatu pola (pattern) yang dibuat berdasarkan aturan tertentu.

RegExp biasa digunakan untuk melakukan validasi / pengecekan nilai yang diisi melalui form.

Pada dasarnya proses validasi menggunakan RegExp adalah pencocokan antara pola (pattern) dengan nilai. Kalau ada kecocokan proses validasi dianggap sah (True) kalau tidak cocok dianggap tidak sah (False).

Contoh penggalan program JavaScript yang memanfaatkan RegExp :

var isian = prompt("Ketik alamat situs","");
var pola = new RegExp("http://","i");
if (pola.test(isian))
{
alert("Isian valid");
}
else
{
alert("Isian invalid");
}
Cara lain :
var pola = /abc/;
var str = "abC";
cocok = pola.test(str);
if (cocok)
{
alert("Cocok!");
}
else
{
alert("Tidak cocok!!!");
}
Salah satu hal yang membuat sulit menggunakan RegExp adalah pembuatan pola yang benar. Untuk mengetahui pola yang dibuat sudah benar atau masih salah, adalah dengan mengujinya dengan memasukkan segala macam kemungkinan format data. Selain itu untuk membuat sebuah pola, kita harus mengerti karakter-karakter pembuat pola. Di bawah ini ada daftar karakter pembuat pola regular expression.

Karakter

Arti

Pola

^

Diawali dengan

/^http/

$

Diakhiri dengan

/com$/

*

Berulang, berapa saja

/ab*c/

+

Berulang, satu karakter atau lebih

/ab+c/

?

Hanya satu atau tidak ada karakter

/ab?c/

{m, n}

Berulang, minimum m kali maksimum n kali

/ab{2,4]c/

{m, }

Berulang, minimum m kali

/ab{3,]c/

{m}

Berulang, m kali

/ab{2}c/

( )

Pengelompokan

/(ab){2}c/

[ ]

Karakter di dalam [ ]

/[abc]def/

[… - …]

Karakter dari … sampai …

/[0-9]/,/[a-z]/,/[A-Z]/

[^…]

Selain dari …

/[^a-z]/


Karakter

Arti

Pola

.

Sembarang karakter kecuali baris baru


\w

Sembarang karakter word [0-9a-zA-Z_]


\W

Selain karakter word [^ 0-9a-zA-Z_]


\s

Sembarang white character [ \t\n\r\f\v]


\S

Selain white character [^\t\n\r\f\v]


\d

Sama dengan [0-9]


\D

Sama dengan [^0-9]


\b

Word boundary. Spasi antara \w dan \W


\B

Word non-boundary. Spasi antara karakter-karakter


[\b]

Backspace


|

Atau

/(James|Charlie|Harry)Brown/

Tidak ada komentar: