Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Melarikan Diri daripada Garis Sentak Belakang dalam Rentetan JavaScript dan Ungkapan Biasa?

Bagaimanakah Saya Melarikan Diri daripada Garis Sentak Belakang dalam Rentetan JavaScript dan Ungkapan Biasa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-04 12:27:04828semak imbas

How Do I Escape Backslashes in JavaScript Strings and Regular Expressions?

Melepaskan Garis Senja Ke Belakang dalam Rentetan

Dalam JavaScript, aksara sengkang terbalik memegang kepentingan dalam kedua-dua rentetan dan ungkapan biasa. Ini menimbulkan cabaran apabila cuba menyertakan garis serong terbalik kendiri dalam teks. Untuk mencapai matlamat ini, anda perlu melarikan diri daripada garisan ke belakang menggunakan dua yang berturut-turut ().

String

Apabila mencipta rentetan, garisan belakang pertama bertindak sebagai watak melarikan diri, manakala yang kedua mewakili garis miring ke belakang yang sebenar. Contohnya:

const str = "\"\I have one backslash\"";
console.log(str); // \I have one backslash

Ungkapan Biasa

Begitu juga, dalam ungkapan biasa, dua garisan ke belakang berturut-turut diperlukan untuk memadankan satu garisan ke belakang. Ini kerana garis miring ke belakang pertama berfungsi sebagai watak melarikan diri dalam literal ungkapan biasa. Contohnya:

const regex = /\/; // Match a single backslash

Menggunakan Rentetan untuk Mencipta Ungkapan Biasa

Apabila menggunakan rentetan untuk membina ungkapan biasa, adalah penting untuk mempertimbangkan dua tahap pelarian. Mula-mula, garis miring ke belakang mesti dilepaskan dalam rentetan, dan kemudian dilepaskan semula dalam ungkapan biasa yang dibuat. Akibatnya, empat garis miring ke belakang diperlukan secara keseluruhan.

const regex = new RegExp("\\"); // Matches a single backslash using a string

Kemas Kini ES2015 dan ES2018

Dalam versi JavaScript terbaharu, literal templat menyediakan kaedah alternatif untuk memasukkan garis miring ke belakang dalam rentetan . Fungsi String.raw juga boleh digunakan untuk mencapai ini.

const str = String.raw`\apple`; // Valid ES2015 syntax

Perlu diambil perhatian bahawa literal templat harus digunakan dengan berhati-hati, kerana ia tidak menyokong penggantian yang mengandungi aksara ${. Memasukkan ${ di dalam literal templat akan menghasilkan kemasukan garis sembang ke belakang dalam rentetan, sama seperti contoh di bawah:

const foo = "bar";
const str = String.raw`\apple${foo}`; // Results in \applebar

Atas ialah kandungan terperinci Bagaimanakah Saya Melarikan Diri daripada Garis Sentak Belakang dalam Rentetan JavaScript dan Ungkapan Biasa?. 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