[英]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.