Bagaimana untuk Memadankan Aksara Bukan ASCII dengan Sempadan Word dalam Regex JavaScript?

Barbara Streisand
Lepaskan: 2024-10-27 04:46:29
asal
551 orang telah melayarinya

How to Match Non-ASCII Characters with Word Boundaries in JavaScript Regex?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Pecahan:

  • (?:...): kumpulan tidak menangkap
  • ^: permulaan rentetan
  • s: ruang kosong
  • |: operator "atau"

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!