Gelagat Tidak Dijangka string.replace dengan Dollar Sign ($) Replacement
Dalam JavaScript, kaedah string.replace menawarkan cara yang mudah untuk menggantikan subrentetan dalam rentetan. Walau bagaimanapun, apabila menggunakan tanda dolar ($) sebagai rentetan gantian, tingkah laku yang tidak dijangka mungkin timbul.
Pertimbangkan coretan kod berikut:
var text = "as"; text = text.replace(text, "$\'"); console.log(text);
Daripada mencetak "$'" seperti yang dijangkakan , kod ini mengeluarkan rentetan kosong. Tingkah laku pelik ini boleh dikaitkan dengan makna istimewa tanda dolar dalam ungkapan biasa JavaScript.
Tanda dolar ($) dalam ungkapan biasa menandakan penghujung rentetan. Apabila digunakan dalam string.replace, ia mengarahkan kaedah untuk menggantikan subrentetan dengan kandungan yang ditangkap oleh kumpulan tangkapan ungkapan sebelumnya. Dalam kes ini, tiada kumpulan tangkapan, yang membawa kepada rentetan gantian kosong.
Untuk menyelesaikan isu ini dan menggunakan tanda dolar seperti yang dimaksudkan, urutan melarikan diri $$ mesti digunakan. Urutan melarikan diri ini memberitahu JavaScript bahawa tanda dolar harus dianggap sebagai aksara literal dan bukannya simbol khas.
Berikut ialah kod yang diubah suai:
text = text.replace(text, "$$'");
Dengan pengubahsuaian ini, kod akan betul cetak "$'" pada konsol, kerana tanda dolar kini dianggap sebagai aksara untuk dimasukkan ke dalam rentetan gantian.
Atas ialah kandungan terperinci Mengapakah `string.replace` dengan tanda dolar ($) sebagai penggantian menghasilkan rentetan kosong dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!