2011-08-10 171 views
0

引號這是我的JavaScript正則表達式匹配只有拉丁文或希伯來語characthers:允許正則表達式

/^(?:[\u0590-\u05FF\uFB1D-\uFB40 ]+|[\w ]+)$/i 

我需要什麼術語,以便使報價補充的嗎?例如,如果輸入的是:。ABC「d應該通過正則表達式測試不驚動

UPDATE

我認爲這將是更好,如果我給你全碼:

var RE_MY_REGEX = /^(?:[\u0590-\u05FF\uFB1D-\uFB40 ]+|[\w ]+)$/i, 
    myValue = 'abc"d'; 
if (!RE_MY_REGEX.test(myValue)) { 
     alert("failed"); 
} 
else 
{ 
alert("success"); 
} 

回答

1

您可以在括號內使用引號("):

/^(?:[\u0590-\u05FF\uFB1D-\uFB40 "]+|[\w "]+)$/i 

在任何情況下,我有一個關於你的正則表達式的最後一個字符的空間無疑......應該不會是這樣的:

/^(?:[\u0590-\u05FF\uFB1D-\uFB40 "]+|[\w "]+)$/i 

如果行情能夠在希伯來文中出現,應該把報價有也。我不確定寫希伯來文時是否使用了與拉丁文相同的引號,或者它們的Unicode可以是什麼。所以,你可以事先用你的希伯來語文本來檢查。

如果上面的正則表達式不起作用,我會建議一步一步來:簡化它並用拉丁字符串檢查它;然後修改正則表達式只考慮希伯來語並檢查它;不帶引號等...

+0

您的解決方案沒有爲我工作... – tone

+0

做引號出現在希伯來字符?我懷疑這取決於報價,看看這個正則表達式測試:http://regexpal.com/(也看看我的編輯...) – sergio

+0

是的我的quoets也可以出現在希伯來字符,如果測試失敗的情況......我該怎麼辦? – tone

0

在關閉括號之前有一個額外的空間)。以下代碼對我來說工作得很好,並以「成功」提醒。

var RE_MY_REGEX = /^(?:[\u0590-\u05FF\uFB1D-\uFB40 ]+|["\w ]+)$/i; 
myValue = 'abc"d'; 
if (!RE_MY_REGEX.test(myValue)) { 
    alert("failed"); 
} 
else { 
    alert("success"); 
}