將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>
細分:
此修改後的程式碼將符合標題中的術語“äl”,因為它定義了包含非ASCII 字元的更靈活的詞開頭邊界條件。
以上是如何在 JavaScript 正規表示式中將非 ASCII 字元與單字邊界配對?的詳細內容。更多資訊請關注PHP中文網其他相關文章!