Fungsi RegExp.escape JavaScript yang Hilang
Anda berusaha untuk membina ungkapan biasa daripada rentetan arbitrari, tetapi kaedah terbina dalam mengelakkan anda. Walaupun Ruby memudahkan RegExp.escape, JavaScript tidak mempunyai persamaan.
Fungsi yang Dicadangkan
Fungsi yang disyorkan dalam urutan yang berbeza tidak berfungsi kerana ia gagal untuk melepaskan aksara seperti ^ (permulaan rentetan), $ (akhir rentetan), dan - (digunakan untuk julat dalam aksara kumpulan).
Untuk penyelesaian yang mantap, pertimbangkan perkara berikut:
function escapeRegex(string) { return string.replace(/[/\-\^$*+?.()|[\]{}]/g, '\$&'); }
Fungsi ini secara bijak melepaskan semua aksara yang penting untuk pembinaan ekspresi biasa, menjadikannya sesuai untuk kedua-dua kelas aksara dan literal regex.
Mengapa JavaScript Kurang?
Ketiadaan terbina dalam RegExp.escape dalam JavaScript kekal sebagai isu yang menjengkelkan. Fungsi ini amat diperlukan untuk membersihkan input pengguna sebelum membuat ungkapan biasa, menghalang potensi kelemahan keselamatan dan tingkah laku yang tidak dijangka.
Atas ialah kandungan terperinci Mengapa JavaScript Tidak Mempunyai Fungsi RegExp.escape Terbina dalam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!