Sunday, July 22, 2012

compile()

Metode RegExp.compile() digunakan untuk menggantikan pattern objek RegExp yang ada dengan memberikan pattern baru pada waktu script itu sedang di eksekusi.

Sintaks:

regexObj.compile(pattern, flags);

Untuk pattern berisi pola dari regular expression. Untuk flags bisa g, i, atau gi.

Jika mempunyai regexObj yang digunakan untuk mencari string "man" di dalam stringObj, setelah ditemukan, "man" akan digantikan dengan kata "boy":

var stringObj = "The heros are either superman or superwoman."; var regexObj = new RegExp("man"); var newString = stringObj.replace(regexObj, "boy"); //The heros are either superboy or superwoman.

Untuk pattern di atas itu, string "man" akan cocok di dalam "superman" dan juga cocok di dalam "superwoman", tetapi karena flag tidak diset g, jadi "superwoman" tidak termasuk didalamnya, dan akhirnya itu hanya mengganti "superman" menjadi "superboy".

Jika lain waktu ingin merubah lagi pattern dari regexObj, misalnya ingin mengganti "man" di dalam "superman" dan mengganti "man" di dalam "superwoman" dengan "boy", anda bisa melakukannya dengan RegExp.compile(), seperti berikut:

regexObj.compile("man", "g"); newString = stringObj.replace(regexObj, "boy"); //The heros are either superboy or superwoboy.

Perhatikan penambahan flag g untuk kode terakhir, itu dilakukan agar "man" di dalam "superman" dan "man" di dalam "superwoman" digantikan dengan "boy", yang masing-masing "superman" menjadi "superboy" dan "superwoman" menjadi "superwoboy". Berikut kode lengkapnya:

var stringObj = "The heros are either superman or superwoman."; var regexObj = new RegExp("man"); var newString = stringObj.replace(regexObj, "boy"); document.write(newString+"<BR>"); //The heros are either superboy or superwoman. regexObj.compile("man", "g"); newString = stringObj.replace(regexObj, "boy"); document.write(newString); //The heros are either superboy or superwoboy.