Memadankan Aksara Bukan ASCII dalam Regex JavaScript dengan Sempadan Word
Dalam JavaScript, objek RegExp dengan padanan sempadan perkataan (b) boleh ditemui had semasa mengendalikan aksara bukan ASCII seperti vokal Finland (ä, ö, dan å). Untuk memadankan aksara ini dengan tepat, kami perlu melaraskan pendekatan kami.
Pertimbangkan kod berikut:
<code class="javascript">var title = "this is simple string with finnish word tämä on ääkköstesti älkää ihmetelkö"; var searchterm = "äl"; if (new RegExp("\b" + searchterm, "gi").test(title)) { // This does not work for "äl" }</code>
Kod ini cuba memadankan istilah "äl" dalam tajuk menggunakan sempadan b . Walau bagaimanapun, ia gagal kerana b memadankan sempadan perkataan berdasarkan julat 256 bait standard, tidak termasuk aksara bukan ASCII.
Penyelesaian: Kumpulan Tidak Menangkap dengan Sempadan Perkataan
Untuk menyelesaikan isu ini, kita boleh menggantikan b dengan kumpulan bukan menangkap yang secara eksplisit sepadan dengan permulaan rentetan atau ruang kosong:
<code class="javascript">if (new RegExp("(?:^|\s)" + searchterm, "gi").test(title)) { // Now it works for "äl" }</code>
Pecahan:
Kod yang diubah suai ini akan sepadan dengan istilah "äl" dalam tajuk kerana ia mentakrifkan syarat sempadan permulaan perkataan yang lebih fleksibel yang merangkumi aksara bukan ASCII.
Atas ialah kandungan terperinci Bagaimana untuk Memadankan Aksara Bukan ASCII dengan Sempadan Word dalam Regex JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!