Rumah >hujung hadapan web >tutorial js >Mengapa Adakah `String.replace()` dengan Tanda Dolar ($) Menghasilkan Rentetan Kosong?

Mengapa Adakah `String.replace()` dengan Tanda Dolar ($) Menghasilkan Rentetan Kosong?

Barbara Streisand
Barbara Streisandasal
2024-10-30 01:00:021052semak imbas

 Why Does `String.replace()` with a Dollar Sign ($) Result in an Empty String?

String.replace() Keanehan dengan Penggantian Tanda Dolar ($)

Apabila menggunakan penggantian rentetan dalam JavaScript, tingkah laku pelik boleh timbul dengan aksara tanda dolar ($). Pertimbangkan coretan kod berikut:

<code class="javascript">var text = "as";
text = text.replace(text,"$\'");
console.log(text);</code>

Anehnya, kod ini mengeluarkan rentetan kosong. Jangkaan awal kami adalah untuk mencetak $'. Apakah yang menerangkan hasil yang tidak dijangka ini?

Jawapannya terletak pada kepentingan istimewa $ dalam ungkapan biasa JavaScript dan kaedah penggantian rentetan. Dalam konteks ini, $ menandakan penghujung rentetan, gelagat istimewa yang mengatasi peranan tipikalnya sebagai aksara literal.

Untuk menggunakan $ sebagai aksara sebenar dalam rentetan gantian, adalah perlu untuk melepaskannya menggunakan $$. Dengan mengubah suai kod seperti berikut, kami memperoleh output yang dimaksudkan:

<code class="javascript">var text = "as";
text = text.replace(text, "$$\'");
console.log(text);</code>

Kod yang dikemas kini ini mencetak $' dengan betul pada konsol, menunjukkan penggunaan $ yang betul sebagai aksara literal dalam ungkapan biasa.

Atas ialah kandungan terperinci Mengapa Adakah `String.replace()` dengan Tanda Dolar ($) Menghasilkan Rentetan Kosong?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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