Rumah > hujung hadapan web > tutorial js > Mengapakah `string.replace` dengan tanda dolar ($) sebagai penggantian menghasilkan rentetan kosong dalam JavaScript?

Mengapakah `string.replace` dengan tanda dolar ($) sebagai penggantian menghasilkan rentetan kosong dalam JavaScript?

Susan Sarandon
Lepaskan: 2024-11-04 04:31:01
asal
1043 orang telah melayarinya

Why does `string.replace` with a dollar sign ($) as the replacement result in an empty string in JavaScript?

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);
Salin selepas log masuk

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, "$$'");
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan