Sintaks dari metode replace adalah: stringObj.replace(rgExp, replaceText) dimana stringObj adalah string (string), reExp dapat berupa objek ekspresi reguler (RegExp) atau string (string), dan replaceText adalah pengganti yang ditemukan rangkaian. . . Untuk membantu semua orang memahami lebih baik, mari kita berikan contoh sederhana di bawah ini.
kode Js
Copy kode kodenya sebagai berikut:
<skrip bahasa="javascript">
var stringObj="Republik Rakyat Zhonggu, Rakyat Zhonggu";
//Ganti kesalahan ketik "Zhonggu" dengan "China"
//Dan mengembalikan karakter baru yang diganti
//Nilai string asli stringObj tidak berubah
var newstr=stringObj.replace("Zhonggu","China");
peringatan(newstr);
</skrip>
"Zhonggu" adalah "Tiongkok"
Nilai dari
Cina");
Jika Anda lebih pintar dari saya, setelah membaca contoh di atas, Anda akan menemukan bahwa kesalahan ketik kedua "Zhonggu" belum tergantikan dengan "China". Kita dapat menjalankan metode penggantian sekunder untuk menggantikan kesalahan ketik kedua "Zhonggu". telah diperbaiki sebagai berikut:
kode Js
Copy kode kodenya sebagai berikut:
<skrip bahasa="javascript">
var stringObj="Republik Rakyat Zhonggu, Rakyat Zhonggu";
//Ganti kesalahan ketik "Zhonggu" dengan "China"
//Dan mengembalikan karakter baru yang diganti
//Nilai string asli stringObj tidak berubah
var newstr=stringObj.replace("Zhonggu","China");
newstr=newstr.replace("Zhonggu","Tiongkok");
peringatan(newstr);
</skrip>
"Zhonggu" adalah "Tiongkok"
Nilai dari
Cina");
Cina");
Kita bisa memikirkannya baik-baik. Jika ada kesalahan ketik N pangkat N, haruskah kita juga menjalankan metode penggantian pangkat N pangkat N untuk menggantikan kesalahan ketik tersebut? ? Oh, jangan takut. Dengan ekspresi reguler, Anda tidak perlu menjalankan metode penggantian sekali jika terjadi kesalahan ketik. . Kode setelah program diperbaiki adalah sebagai berikut
kode Js
Copy kode kodenya sebagai berikut:
<skrip bahasa="javascript">
var reg=new RegExp("久古","g"); //Buat objek RegExp reguler
var stringObj="Republik Rakyat Zhonggu, Rakyat Zhonggu";
var newstr=stringObj.replace(reg,"China");
peringatan(newstr);
</skrip>
Buat objek RegExp biasa
Di atas adalah penerapan metode penggantian yang paling sederhana. Saya ingin tahu apakah Anda memahaminya? ? Mari kita mulai dengan aplikasi yang sedikit lebih rumit. .
Saat Anda mencari artikel di beberapa website, Anda akan menemukan fenomena ini, yaitu kata kunci pencarian akan disorot dan diubah warnanya? ? Bagaimana hal ini dicapai? ? Sebenarnya, kita bisa menggunakan ekspresi reguler untuk mencapainya. Silakan lihat kode di bawah ini untuk prinsip sederhananya
kode Js
Copy kode kodenya sebagai berikut:
<skrip bahasa="javascript">
var str="Republik Rakyat Tiongkok, Republik Rakyat Tiongkok";
var newstr=str.replace(/(人)/g,"<font color=red>$1</font>");
dokumen.write(newstr);
</skrip>
Program di atas kurang interaktivitas. Mari kita tingkatkan programnya sehingga Anda dapat secara mandiri memasukkan karakter yang ingin Anda temukan.
kode Js
Copy kode kodenya sebagai berikut:
<skrip bahasa="javascript">
var s=prompt("Masukkan karakter yang anda cari", "orang");
var reg=RegExp baru("("+s+")","g");
var str="Republik Rakyat Tiongkok, Republik Rakyat Tiongkok";
var newstr=str.replace(reg,"<font color=red>$1</font>");
dokumen.write(newstr);
</skrip>
rakyat");
Mungkin semua orang belum begitu paham apa arti karakter khusus $1. Faktanya, $1 mewakili karakter dalam tanda kurung pada ekspresi di sebelah kiri, yaitu subpertandingan pertama. . Apa itu subpertandingan? ? Dalam istilah awam, setiap tanda kurung di sebelah kiri adalah pencocokan kata pertama, dan tanda kurung kedua adalah pencocokan kata kedua. .
Ketika kita ingin melakukan operasi pada karakter yang ditemukan, bagaimana cara mengimplementasikannya? ? Sebelum mengimplementasikannya, mari kita bahas terlebih dahulu cara mendapatkan parameter suatu fungsi tertentu. . Di dalam fungsi terdapat kumpulan argumen. Koleksi ini menyimpan semua parameter fungsi saat ini. Semua parameter fungsi dapat diperoleh melalui argumen. Untuk pemahaman Anda, silakan lihat kode berikut.
kode Js
Copy kode kodenya sebagai berikut:
<skrip bahasa="javascript">
tes fungsi(){
alert("Jumlah parameter:"+argumen.panjang);
alert("Nilai setiap parameter: "+argumen[0]);
alert("Nilai parameter kedua"+argumen[1]);
//Anda dapat menggunakan perulangan for untuk membaca semua parameter
}
tes("aa","bb","cc");
</skrip>
peringatan("
peringatan("
peringatan("
//Perulangan untuk membaca semua parameter
Setelah memahami program diatas, mari kita simak program menarik berikut ini
kode Js
Copy kode kodenya sebagai berikut:
<skrip bahasa="javascript">
var reg=RegExp baru("//d","g");
var str="abd1afa4sdf";
str.replace(reg,function(){alert(arguments.length);});
</skrip>
Kami terkejut saat mengetahui bahwa fungsi anonim dijalankan dua kali, dan ada tiga parameter dalam fungsi tersebut. ? Hal ini mudah untuk dipikirkan, karena ekspresi reguler yang kita tulis cocok dengan satu angka, dan string yang terdeteksi kebetulan memiliki dua angka, sehingga fungsi anonim dijalankan dua kali. . Apa tiga parameter di dalam fungsi anonim? ? Untuk memperjelas masalah ini, mari kita lihat kode berikut.
kode Js
Copy kode kodenya sebagai berikut:
<skrip bahasa="javascript">
tes fungsi(){
for(var i=0;i<argumen.panjang;i++){
alert("Nilai parameter "+(i+1)+": "+argumen[i]);
}
}
var reg=RegExp baru("//d","g");
var str="abd1afa4sdf";
str.ganti(reg,uji);
</skrip>
for(var i=0;i<argumen.panjang;i++){
alert("Nilai parameter: "+argumen[i]);
}
Setelah observasi, kami menemukan bahwa parameter pertama mewakili karakter yang cocok, parameter kedua mewakili posisi indeks minimum karakter saat mencocokkan (RegExp.index), dan parameter ketiga mewakili string yang cocok (RegExp.input). Faktanya, jumlah parameter ini akan bertambah seiring dengan bertambahnya jumlah submatch. Setelah memperjelas permasalahan ini, kita dapat menggunakan cara penulisan yang lain
kode Js
Copy kode kodenya sebagai berikut:
<skrip bahasa="javascript">
uji fungsi($1){
kembalikan "<font color='red'>"+$1+"</font>"
}
var s=prompt("Masukkan karakter yang anda cari", "orang");
var reg=RegExp baru("("+s+")","g");
var str="Republik Rakyat Tiongkok, Republik Rakyat Tiongkok";
var newstr=str.replace(reg,tes);
dokumen.write(newstr);
</skrip>
kembalikan "<font color='red'>"+$1+"</font>"
rakyat");
Setelah membaca program diatas, ternyata kamu bisa melakukan apapun yang kamu mau dengan karakter yang cocok. Berikut adalah contoh aplikasi sederhana:
kode Js
Copy kode kodenya sebagai berikut:
<skrip bahasa="javascript">
var str="Dia berumur 22 tahun, dia berumur 20 tahun, ayahnya berumur 45 tahun, dan ayahnya berumur 44 tahun, total ada 4 orang"
uji fungsi($1){
var gyear=(Tanggal baru()).getYear()-parseInt($1)+1;
return $1+"("+tahun+"tahun lahir)";
}
var reg=RegExp baru("(//d+)tahun","g");
var newstr=str.replace(reg,tes);
peringatan(str);
peringatan(newstr);
</skrip>