我与MVC的工作和我新上了。 我要检查输入值仅在波斯语言(文字) [RegularExpression]
验证。 因此,我认为使用正则表达式,需要在统一码的范围内进行检查,但我不lnow怎样才能找到波斯语的Unicode字符的范围。 我说的对这个正则表达式? 你有什么建议,我怎么能找到的Unicode范围波斯语
Answer 1:
波斯字符的范围内: [\u0600-\u06FF]
尝试:
Regex.IsMatch(value, @"^[\u0600-\u06FF]+$")
Answer 2:
检查第一个字母和最后一个字母的范围在波斯,我认为是这样的:
"^[آ-ی]$"
Answer 3:
Regex.IsMatch(Text, @"^([\u0600-\u06FF]+\s?)+$")
这仅包含标准阿拉伯语符号范围,但波斯还包括4个特点:
ژ \uFB8A
پ \u067E
چ \u0686
گ \u06AF
所以你应该使用:
^[\u0600-\u06FF\uFB8A\u067E\u0686\u06AF]+$
如果你想匹配零宽度非木匠,你应该加入这个太:
\u200C
Answer 4:
我用这个正则表达式在我的程序,它工作正常。 希望能帮助你:
[پچجحخهعغفقثصضشسیبلاتنمکگوئدذرزطظژؤآإأءًٌٍَُِّ\s]+$
Answer 5:
TL; DR
所有的答案是说使用\u0600-\u06FF
或[آ-ی]
是完全错误的。
即
\u0600-\u06FF
包含209级比你更需要的人物! 它包括数字呢!
波斯语必须使用的字符集如下:
在使用
^[آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$
信件。在使用
^[۰۱۲۳۴۵۶۷۸۹]+$
换号。在使用
[ ٌ ًّ َ ِ ُ ْ ]
元音在。
或者它们的结合。 您可能希望其他阿拉伯字母像哈姆扎添加ء
你的性格额外设置。
这个答案的存在是为了解决一个常见的误解。 码点0600
通过06FF
中并不表示波斯语/波斯语字母表 (既不确实[آ-ی]
[\u0600-\u0605 ؐ-ؚ\u061Cـ ۖ-\u06DD ۟-ۤ ۧ ۨ ۪-ۭ ً-ٕ ٟ ٖ-ٞ ٰ ، ؍ ٫ ٬ ؛ ؞ ؟ ۔ ٭ ٪ ؉ ؊ ؈ ؎ ؏
۞ ۩ ؆ ؇ ؋ ٠۰ ١۱ ٢۲ ٣۳ ٤۴ ٥۵ ٦۶ ٧۷ ٨۸ ٩۹ ءٴ۽ آ أ ٲ ٱ ؤ إ ٳ ئ ا ٵ ٮ ب ٻ پ ڀ
ة-ث ٹ ٺ ټ ٽ ٿ ج ڃ ڄ چ ڿ ڇ ح خ ځ ڂ څ د ذ ڈ-ڐ ۮ ر ز ڑ-ڙ ۯ س ش ښ-ڜ ۺ ص ض ڝ ڞ
ۻ ط ظ ڟ ع غ ڠ ۼ ف ڡ-ڦ ٯ ق ڧ ڨ ك ک-ڴ ػ ؼ ل ڵ-ڸ م۾ ن ں-ڽ ڹ ه ھ ہ-ۃ ۿ ەۀ وۥ ٶ
ۄ-ۇ ٷ ۈ-ۋ ۏ ى يۦ ٸ ی-ێ ې ۑ ؽ-ؿ ؠ ے ۓ \u061D]
255个字符是堕落在这个范围内,波斯语字母表有32个字母,除了数字波斯语示范这将是42.如果我们增加元音(原阿拉伯语元音,在波斯语很少使用)和Tanvin( , ً
ٍِ
ٌ
和Tashdid( ّ
是用阿拉伯语变音符号不是波斯语的一个子集,我们就用46个字符结束。 这意味着:
\u0600-\u06FF
包含209级比你更需要的人物!
۷
与编码点06F7
是数的波斯语表示7
和٧
与代码点0667
是相同数量的阿拉伯表示。 ۶
是数的波斯语表示6
和٦
是相同数量的阿拉伯表示。 并且都位于0600
至06FF
码点。
波斯数字4的形状(
۴
),五(۵
),和六(۶
)是从阿拉伯和其他数字所用的形状不同有不同的码点。
你可以看到不同数目的不波斯语/波斯存在过,没有人愿意让他们在验证一个名字或姓氏其它字符。
[آ-ی]
包括117个字写得比什么需要有人进行验证等等。 您可以使用一饱眼福的Unicode CLDR 。
Answer 6:
波斯字符的范围内:[\ u0600- \ u06FF] + [\ s]的
尝试:
Regex.IsMatch(Text, @"^([\u0600-\u06FF]+\s?)+$")
这百通包含字母和空格Charachters。