亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript RegExp + Word邊界+ unicode字符

Javascript RegExp + Word邊界+ unicode字符

我正在建立搜索,我將使用它的javascript自動完成。我來自芬蘭(芬蘭語)所以我必須處理一些特殊的角色,如?,?和?當用戶在搜索輸入字段中鍵入文本時,我嘗試將文本與數據匹配。如果用戶輸入例如“??”,則這是一個不能正常工作的簡單示例?!?l”也是如此var title = "this is simple string with finnish word t?m? on ??kk?stesti ?lk?? ihmetelk?";// Does not workvar searchterm = "?l";// does not work//var searchterm = "??";// Works//var searchterm = "wi";if ( new RegExp("\\b"+searchterm, "gi").test(title) ) {    $("#result").html("Match: ("+searchterm+"): "+title);} else {    $("#result").html("nothing found with term: "+searchterm);   }http://jsfiddle.net/7TsxB/那么我怎樣才能讓這些?,?和?字符與javascript正則表達式一起使用?我想我應該使用unicode代碼但是我應該怎么做?這些字符的代碼是:[\ u00C4,\ u00E4,\ u00C5,\ u00E5,\ u00D6,\ u00F6]=>??????
查看完整描述

3 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

\bJavaScript RegEx中的字符類實際上只對簡單的ASCII編碼有用。  \b是字符串\w和\W集合之間的邊界的快捷代碼,以及\w字符串的開頭或結尾。這些字符集僅考慮ASCII“單詞”字符,其中\w等于[a-zA-Z0-9_]并且\W是該類的否定。


這使得RegEx角色類在處理任何真實語言方面基本無用。


\s 如果搜索條件僅由空格分隔,則應該適用于您想要執行的操作。


查看完整回答
反對 回復 2019-09-03
?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

這個問題很老,但我認為我找到了一個更好的解決方案,用于使用unicode字母的正則表達式中的邊界。使用XRegExp,您可以實現有效的\ b邊界擴展它


XRegExp('(?=^|$|[^\\p{L}])')

結果是4000多個字符長,但似乎工作很好。


一些解釋:(?=)是一個零長度前瞻,它查找開始或結束邊界或非字母unicode字符。最重要的想法是前瞻,因為\ b不會捕獲任何東西:它只是真或假。


查看完整回答
反對 回復 2019-09-03
  • 3 回答
  • 0 關注
  • 878 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號