2013-06-25 55 views
2

我正在嘗試使用正則表達式來檢測希伯來字符。從我讀到的,這是Unicode範圍0x0590-0x05ff中的任何字符。希伯來語Unicode範圍在JavaScript正則表達式中不起作用?

但是,以下不工作:

// Character code \u05e6 
var c = String.fromCharCode(parseInt('05e6', 16)); 

/[\u0590–\u05ff]/.test(c); // false 

但下列情況工作:

// Character code \u05e6 
var c = String.fromCharCode(parseInt('05e6', 16)); 

/[\u0590–\u05e8\u05e9-\u05ff]/.test(c); // true 

爲什麼?爲什麼我必須將範圍分割爲0x0590-0x05e80x05e9-0x05ff

我在Chrome和Firefox中使用JavaScript測試了它,它們都具有相同的行爲。

回答

6

連字符實際上是連字符(U + 2013)。真正的連字符可以做到這一點。

+1

這真是太好笑了,謝謝。我在這裏學到的教訓是永遠不要複製粘貼代碼。 – chowey

+1

+1,這讓我很難過,好的偵探工作! –

相關問題