Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menggantikan Berbilang Rentetan Secara serentak dalam JavaScript?
Dalam JavaScript, menggantikan berbilang rentetan dengan berbilang rentetan lain dalam satu operasi bukanlah mudah menggunakan kaedah replace() sahaja. Untuk mencapai hasil yang diinginkan, pendekatan alternatif diperlukan.
Penyelesaian Khusus:
Satu kaedah melibatkan penggunaan fungsi untuk mengendalikan setiap penggantian.
var str = "I have a cat, a dog, and a goat."; var mapObj = { cat:"dog", dog:"goat", goat:"cat" }; str = str.replace(/cat|dog|goat/gi, function(matched){ return mapObj[matched]; });
Mengerti Penyelesaian:
Untuk menjadikan penyelesaian ini lebih fleksibel, ungkapan biasa dinamik boleh dijana menggunakan kaedah Object.keys() dan objek peta yang sepadan.
var re = new RegExp(Object.keys(mapObj).join("|"),"gi"); str = str.replace(re, function(matched){ return mapObj[matched.toLowerCase()]; });
Kini, penambahan atau perubahan pada penggantian boleh dilakukan dengan mudah dengan mengubah suai objek peta.
Fungsi Boleh Guna Semula:
Untuk kebolehgunaan semula, logik ini boleh diabstraksikan menjadi fungsi kendiri:
function replaceAll(str,mapObj){ var re = new RegExp(Object.keys(mapObj).join("|"),"gi"); return str.replace(re, function(matched){ return mapObj[matched.toLowerCase()]; }); }
Fungsi ini boleh dipanggil dengan rentetan yang akan ditukar dan penggantian yang diingini sebagai input, mengembalikan rentetan yang diubah suai.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Berbilang Rentetan Secara serentak dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!