Monday, November 18, 2013

Mencari dan Mengganti Substring di dalam String Target

Pernah menggunakan HTML parser tool?

Secara garis besar cara kerja alat itu adalah dengan mencari substring tertentu di dalam string target, setelah ditemukan, substring itu akan diganti dengan substring yang baru.

Sebagai contoh jika sebelumnya terdapat deklarasi variabel stringObj menggunakan fungsi pembangun objek String, di mana stringObj berisi nilai bersesuaian seperti terlihat di bawah ini:

var stringObj = new String("<B>This is bold text.</B>");

Misalkan saya menginginkan semua karakter < di ganti dengan Entity &lt; dan semua karakter > di ganti dengan Entity &gt;.

Dan kode JavaScript untuk mengkonversi semua karakter < dan semua karakter > menjadi Entity mungkin seperti berikut:

stringObj.replace(/</ig, "&amp;lt;").replace(/>/ig, "&amp;gt;");

Jika sebelumnya terdapat elemen P yang di wakili oleh variabel myOutput dengan properti innerHTML sebagai tempat outputnya, maka hasil pengeksekusian kode JavaScript di atas menghasilkan string baru seperti di bawah ini:

&lt;B&gt;This is bold text.&lt;/B&gt;

Contoh kode lengkapnya:

<P ID="demo"></P> <SCRIPT TYPE="text/javascript"> var myOutput = document.getElementById("demo"); var stringObj = new String("<B>This is bold text.</B>"); myOutput.innerHTML = stringObj.replace(/</ig, "&amp;lt;").replace(/>/ig, "&amp;gt;"); </SCRIPT>

Sebagai tambahan, ketika menggunakan TEXTAREA dengan value-nya sebagai tempat outputnya, ganti:

myOutput.innerHTML = stringObj.replace(/</ig, "&amp;lt;").replace(/>/ig, "&amp;gt;");

Dengan:

myOutput.value = stringObj.replace(/</ig, "&lt;").replace(/>/ig, "&gt;");

Di mana TEXTAREA-nya mungkin seperti berikut ini:

<TEXTAREA ID="demo" ROWS="3" COLS="40"></TEXTAREA>

Contoh kode lengkapnya:

<TEXTAREA ID="demo" ROWS="3" COLS="40"></TEXTAREA> <SCRIPT TYPE="text/javascript"> var myOutput = document.getElementById("demo"); var stringObj = new String("<B>This is bold text.</B>"); myOutput.value = stringObj.replace(/</ig, "&lt;").replace(/>/ig, "&gt;"); </SCRIPT>

Untuk lebih jelas, silahkan lihat referensi metode String.replace().