Memahami Kaedah replace() dalam Rentetan
Dalam pengaturcaraan, kaedah replace() membenarkan anda menggantikan subrentetan tertentu dengan yang lain dalam rentetan yang diberikan. Baru-baru ini, pengguna menghadapi masalah apabila cuba menggantikan petikan pintar dan simbol berdaftar dengan rakan biasa mereka.
Pengguna menggunakan kod berikut:
str.replace(/[“”]/g, '"'); str.replace(/[‘’]/g, "'");
Walau bagaimanapun, kod ini gagal menghasilkan hasil yang diingini. Ini kerana, dalam JavaScript, rentetan tidak boleh diubah. Kaedah replace() menjana rentetan baharu, meninggalkan rentetan asal tidak berubah.
Penyelesaian:
Untuk menggantikan petikan dan simbol pintar dengan betul, kod tersebut hendaklah diubah suai seperti berikut:
str = str.replace(/[“”]/g, '"'); str = str.replace(/[‘’]/g, "'");
Sebagai alternatif, satu pernyataan boleh mencapai perkara yang sama hasil:
str = str.replace(/[“”]/g, '"').replace(/[‘’]/g,"'");
Dengan memperuntukkan rentetan baharu kembali kepada pembolehubah asal, anda secara berkesan menulis ganti rentetan asal dengan yang diubah suai.
Nota Tambahan:
Adalah penting untuk ambil perhatian bahawa kod tersebut menganggap pengekodan UTF-16 untuk aksara. Jika rentetan anda mengandungi aksara di luar Satah Berbilang Bahasa Asas (yang termasuk petikan pintar dan simbol berdaftar), anda mungkin perlu menentukan bendera unicode (u) untuk memastikan padanan yang betul.
Atas ialah kandungan terperinci Mengapa Kaedah `replace()` JavaScript Saya Tidak Mengubah Rentetan Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!