2012-05-12 76 views
23

我使用MVC,我是新的。我想檢查輸入值是否只用波斯語(字符)[RegularExpression]驗證。 所以我想使用正則表達式,並需要檢查unicodes的範圍,但我不知道如何可以找到範圍的波斯字符Unicode。我對這個正則表達式是否正確?你有什麼建議,我怎麼能找到的Unicode範圍波斯語用於檢查輸入字符串的正則表達式只是波斯語

+0

我不明白爲什麼你需要一個正則表達式來檢查一個字符是否在給定範圍內。 – jahroy

+0

字符!=語言。例如,'hdafhladf'不是英語。我確定有一些字符沒有正式分類爲「波斯語」,但允許使用波斯語(也許是空白字符?) –

回答

14

檢查第一個字母和最後一個字母的範圍在波斯我想這樣的事情:

"^[آ-ی]$" 
+0

不工作在php –

+4

不適用於任何波斯字符如「خ」,「پ」,...因爲這不是阿拉伯語!我認爲更好的是使用:[\ u0600- \ u06FF] –

17

波斯字符的範圍內:[\u0600-\u06FF]

嘗試:

Regex.IsMatch(value, @"^[\u0600-\u06FF]+$") 
+4

'[\ u0600- \ u06FF \ uFB8A \ u067E \ u0686 \ u06AF]'更好。見http://stackoverflow.com/a/22565376/896465 – seyed

+0

@downvoter:任何理由? – Toto

8

我在我的程序中使用此RegExp,它工作正常。希望能幫助你:

[پچجحخهعغفقثصضشسیبلاتنمکگوئدذرزطظژؤآإأءًٌٍَُِّ\s]+$ 
0

波斯字符的範圍內:\ u0600- \ u06FF] + [\ S]

嘗試:

Regex.IsMatch(Text, @"^([\u0600-\u06FF]+\s?)+$") 

這百通包含字母和空格Charachters。

13
Regex.IsMatch(Text, @"^([\u0600-\u06FF]+\s?)+$")  

這僅包含標準阿拉伯語符號範圍,但波斯還包括4個特點:

​​

所以你應該使用:

^[\u0600-\u06FF\uFB8A\u067E\u0686\u06AF]+$ 

如果你想匹配零寬度 - 非木工,你也應該加上:

\u200C 
+2

考慮在字符中接受空間和零寬度非木工! https://stackoverflow.com/a/34869397/5160077 –

相關問題