簡體   English   中英

javascript在雙花括號內匹配希伯來語單詞

[英]javascript match hebrew word inside double curly brackets

我有一個用英語工作的js函數,但希伯來語出現錯誤

函數將匹配{{ }}中字符串中的所有單詞,並在不包含括號的array返回雙花括號內的單詞,該字符串可以包含英語和非英語單詞,例如: {{test}} {{בדיקה}} hi this is my test {{test2}}

var str_eng =  "{{test}} {{test1}}";
var str_non_eng = "{{בדיקה}} {{עעע}}";

str_eng.match(/{{\s*[\w\.]+\s*}}/g).map(function(x) { return x.match(/[\w\.]+/)[0];  }) //array[ "test","test1" ] //ok

str_non_eng.match(/{{\s*[\w\.]+\s*}}/g).map(function(x) { return x.match(/[\w\.]+/)[0];  }) // error not working

謝謝!

\\w與希伯來語字符不匹配-為此,您需要在希伯來語的Unicode范圍內使用[\֐-\׿]進行匹配-請參見此處

您可以將\\w[\֐-\׿]以同時匹配ASCII和希伯來語:

 // var str_non_eng = "{{בדיקה}} {{עעע}}"; var str_non_eng = "{{test}} {{בדיקה}} hi this is my test {{test2}}"; var r1 = /{{\\s*[\\w\֐-\׿\\.]+\\s*}}/g var r2 = /[\\w\֐-\׿\\.]+/; var foo = str_non_eng.match(r1).map(function(x) { return x.match(r2)[0]; }); console.log(foo); 

您不能將\\ w用於希伯來字符。 使用以下內容:

/{{\s*[\w\u0590-\u05FF\.]+\s*}}/g

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM