Rentetan JS mempunyai kaedah replace(). Tetapi kaedah ini hanya akan menggantikan rentetan pertama yang dipadankan. Contohnya:
<HTML> <HEAD> <TITLE> New Document </TITLE> </HEAD> <BODY> <script> var str = "wordwordwordword"; var strNew = str.replace("word","Excel"); alert(strNew); </script> </BODY> </HTML>
Jika anda ingin menggantikan semua, JS tidak menyediakan kaedah seperti replaceAll. Kesan Ganti boleh dicapai menggunakan jadual biasa:
str.replace(/word/g,"Excel")
g bermaksud: lakukan perlawanan global (cari semua perlawanan dan bukannya berhenti selepas perlawanan pertama ditemui).
<HEAD> <TITLE> New Document </TITLE> <script> function replaceAll(str) { if(str!=null) str = str.replace(/word/g,"Excel") return str; } </script> </HEAD> <BODY> <script> var str = "wordwordwordword"; var strNew = str.replace("word","Excel"); strNew = replaceAll(str); alert(strNew); </script> </BODY> </HTML>
Kaedah penulisan di atas mempunyai kaedah penulisan yang serupa:
str.replace(new RegExp("word","gm"),"Excel")
g melakukan perlawanan global (mencari semua perlawanan dan bukannya berhenti selepas perlawanan pertama ditemui).
m melakukan padanan berbilang baris.
Selain itu, anda juga boleh menambah kaedah prototaip objek Stirng:
String.prototype.replaceAll = function(s1,s2){ return this.replace(new RegExp(s1,"gm"),s2); }
Dengan cara ini anda boleh menggunakan replaceAll sama seperti menggunakan kaedah replace
str.replaceAll("word","Excel");
Ringkasnya, terdapat tiga cara
1. str.replace(/oldString/g,newString)
2. str.replace(new RegExp(oldString,"gm"),newString)
3. Kaedah prototaip objek Tambah String gantiSemua