首頁  >  文章  >  web前端  >  如何在 JavaScript 正規表示式中將非 ASCII 字元與單字邊界配對?

如何在 JavaScript 正規表示式中將非 ASCII 字元與單字邊界配對?

Barbara Streisand
Barbara Streisand原創
2024-10-27 04:46:29552瀏覽

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

將JavaScript 正規表示式中的非ASCII 字元與單字邊界進行匹配

在JavaScript 中,具有單字邊界(b) 匹配的RegExp 物件可以遇到處理非ASCII 字元(例如芬蘭語元音(ä、ö 和å)時的限制)。為了準確地匹配這些字符,我們需要調整我們的方法。

考慮以下程式碼:

<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>

此程式碼嘗試使用 b 邊界來符合標題中的術語「äl」 。但是,它會失敗,因為 b 根據標準 256 位元組範圍匹配單字邊界,不包括非 ASCII 字元。

解決方案:非捕獲帶單字邊界的群組

要解決此問題,我們可以將b 替換為明確匹配字串開頭或空格的非捕獲組別:

<code class="javascript">if (new RegExp("(?:^|\s)" + searchterm, "gi").test(title)) {
  // Now it works for "äl"
}</code>

細分:

  • (?:...):非捕獲組
  • ^:字串開頭
  • s:空格
  • |:“或”運算符

此修改後的程式碼將符合標題中的術語“äl”,因為它定義了包含非ASCII 字元的更靈活的詞開頭邊界條件。

以上是如何在 JavaScript 正規表示式中將非 ASCII 字元與單字邊界配對?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn