traductor también persa iran idioma buscó alfabeto c# regex asp.net-mvc-3 model-view-controller

c# - también - idioma persa traductor



Regex para comprobar que la cadena de entrada está solo en lenguaje persa (6)

TL; DR

Todas las respuestas que dicen use /u0600-/u06FF o [آ-ی] son simplemente INCORRECTAS.

es decir, /u0600-/u06FF contiene 209 caracteres más de los que necesita. ¡e incluye números también!

Los conjuntos de caracteres usados ​​Farsi MUST son los siguientes:

  • Utilice ^[آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$ para letras.

  • Use ^[۰۱۲۳۴۵۶۷۸۹]+$ para números.

  • Usa [ ‬ٌ ‬ًّ ‬َ ‬ِ ‬ُ ‬ْ ‬] para las vocales.

O una unión de esos. Es posible que desee agregar otras letras árabes como Hamza ء a su juego de caracteres adicionalmente.

Esta respuesta existe para corregir un error común. Los puntos de código 0600 a 06FF no indican el alfabeto persa / farsi (tampoco lo hace [آ-ی] ):

[/u0600-/u0605 ؐ-ؚ/u061Cـ ۖ-/u06DD ۟-ۤ ۧ ۨ ۪-ۭ ً-ٕ ٟ ٖ-ٞ ٰ ، ؍ ٫ ٬ ؛ ؞ ؟ ۔ ٭ ٪ ؉ ؊ ؈ ؎ ؏ ۞ ۩ ؆ ؇ ؋ ٠۰ ١۱ ٢۲ ٣۳ ٤۴ ٥۵ ٦۶ ٧۷ ٨۸ ٩۹ ءٴ۽ آ أ ٲ ٱ ؤ إ ٳ ئ ا ٵ ٮ ب ٻ پ ڀ ة-ث ٹ ٺ ټ ٽ ٿ ج ڃ ڄ چ ڿ ڇ ح خ ځ ڂ څ د ذ ڈ-ڐ ۮ ر ز ڑ-ڙ ۯ س ش ښ-ڜ ۺ ص ض ڝ ڞ ۻ ط ظ ڟ ع غ ڠ ۼ ف ڡ-ڦ ٯ ق ڧ ڨ ك ک-ڴ ػ ؼ ل ڵ-ڸ م۾ ن ں-ڽ ڹ ه ھ ہ-ۃ ۿ ەۀ وۥ ٶ ۄ-ۇ ٷ ۈ-ۋ ۏ ى يۦ ٸ ی-ێ ې ۑ ؽ-ؿ ؠ ے ۓ /u061D]

255 caracteres están caídos en este rango, el alfabeto Farsi tiene 32 letras que además de la demostración en Farsi de dígitos sería 42. Si agregamos vocales (vocales árabes originalmente, que rara vez se usan en farsi) y Tanvin ( ,, ٌ ‬ y Tashdid ( ّ ‬ que son un subconjunto de diacríticos árabes no farsi, terminamos con 46 caracteres. Esto significa:

/u0600-/u06FF contiene 209 caracteres más de los que necesita!

۷ con codepoint 06F7 es una representación farsi de los números 7 y ٧ con codepoint 0667 es la representación árabe del mismo número. ۶ es la representación farsi del número 6 y ٦ es la representación árabe del mismo número. Y todos residen en los 06FF código 0600 a 06FF .

Las formas de los dígitos persas cuatro ( ۴ ), cinco ( ۵ ) y seis ( ۶ ) son diferentes de las formas utilizadas en árabe y los otros números tienen diferentes puntos de código.

También puede ver una cantidad diferente de otros caracteres que no existen en persa / farsi y nadie está dispuesto a tenerlos mientras valida un nombre o apellido.

[آ-ی] incluye 117 caracteres, que es mucho más de lo que alguien necesita para la validación. Puede verlos todos usando Unicode CLDR .

Trabajo con MVC y soy nuevo en eso. Quiero verificar que los valores de entrada solo estén en idioma persa (caracteres) mediante la validación [RegularExpression] . Así que pienso usar Regex y necesito verificar el alcance de los unicodes, pero no sé cómo se puede encontrar el rango de caracteres persas Unicode. ¿Estoy en lo cierto acerca de esta Regex? ¿cuál es su sugerencia y cómo puedo encontrar el rango de Unicode en persa


Los caracteres persas están dentro del rango: [/u0600-/u06FF]

Tratar:

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


Los caracteres persas están dentro del rango: [/ u0600- / u06FF] + [/ s]

Tratar:

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

Este Patern contiene letra y espacio Charachters.


Uso este RegExp en mi programa y funciona correctamente. espero ayudarte:

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


Verifique la primera letra y el último rango de letras en persa. Creo algo como esto:

"^[آ-ی]$"


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

Este solo contiene el rango estándar de símbolos árabes, pero el persa también incluye 4 caracteres más:

ژ /uFB8A پ /u067E چ /u0686 گ /u06AF

Entonces deberías usar:

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

Si desea hacer coincidir Zero-width-non-joiner, debe agregar esto también:

/u200C