Penggunaan Rujukan Belakang dalam Ekspresi Biasa JavaScript
Kandungan rujukan belakang boleh diakses bukan sahaja dalam tetapan gantian, tetapi juga dalam ekspresi biasa itu sendiri: kita boleh meletakkan sesuatu ke dalam rujukan belakang, dan kemudian secara langsung dalam ekspresi biasa menyatakan bahawa di sini mesti terdapat kandungan rujukan belakang tersebut.
Kandungan rujukan belakang boleh diakses melalui nombornya,
dengan tanda garis miring terbalik di hadapannya. Sebagai contoh,
rujukan belakang pertama boleh diakses seperti ini: \1,
rujukan belakang kedua seperti ini - \2, ketiga
- \3 dan seterusnya.
Saya yakin bahawa semua yang ditulis di atas masih agak kabur untuk anda. Ini tidak menghairankan, memandangkan rujukan belakang adalah bahagian ekspresi biasa yang paling sukar difahami. Mari kita fahami dengan contoh.
Contoh
Katakan kita mempunyai rentetan seperti ini:
let str = 'aa bb cd ef';
Mari cari semua tempat di mana terdapat dua huruf yang sama berturut-turut. Untuk menyelesaikan masalah ini, kita akan mencari sebarang huruf, memasukkan nya ke dalam rujukan belakang, dan kemudian memeriksa sama ada simbol seterusnya adalah kandungan rujukan belakang tersebut:
let res = str.replace(/([a-z])\1/g, '!');
Hasilnya, yang berikut akan disimpan ke dalam pembolehubah:
'! ! cd ef'
Contoh
Katakan kita mempunyai rentetan seperti ini:
let str = 'asxca buzxb csgd';
Mari cari semua perkataan di mana huruf pertama dan terakhir adalah sama. Untuk menyelesaikan masalah ini, kita akan tulis corak berikut: huruf, diikuti oleh satu atau lebih huruf, dan kemudian huruf yang sama seperti pertama:
let res = str.replace(/([a-z])[a-z]+\1/g, '!');
Hasilnya, yang berikut akan disimpan ke dalam pembolehubah:
'! ! csgd'
Masalah Praktikal
Diberi rentetan:
let str = 'aaa bbb ccc xyz';
Cari semua subrentetan yang mempunyai tiga huruf yang sama berturut-turut.
Diberi rentetan:
let str = 'a aa aaa aaaa aaaaa';
Cari semua subrentetan yang mempunyai dua atau lebih huruf yang sama berturut-turut.
Diberi rentetan:
let str = 'aaa aaa bbb bbb ccc ddd';
Cari semua subrentetan yang mempunyai dua perkataan yang sama berturut-turut.