2012-05-12 6 views
23

Ich arbeite mit MVC und ich bin neu auf. Ich möchte Eingabewerte nur in der persischen Sprache (Zeichen) überprüfen durch [RegularExpression] Validierung. Also ich denke, Regex zu verwenden und müssen Unicode-Bereich einchecken, aber ich weiß nicht, wie Bereich der persischen Zeichen Unicode finden kann. Habe ich Recht mit diesem Regex? Was ist Ihr Vorschlag und wie ich Reihe von Unicode in persischerRegex für überprüfen Sie die Eingabe Zeichenfolge ist nur in persischer Sprache

+0

Ich verstehe nicht, warum Sie eine Regex benötigen, um zu prüfen, ob ein Zeichen innerhalb eines bestimmten Bereichs liegt. – jahroy

+0

Zeichen! = Sprache. Zum Beispiel ist 'hdafhladf' nicht Englisch. Und ich bin mir sicher, dass es einige Zeichen gibt, die offiziell nicht als "Persisch" klassifiziert sind, aber in persischer Sprache erlaubt sind (vielleicht Whitespace-Zeichen?) –

Antwort

14

prüfen Anfangsbuchstaben und letzten Buchstaben Bereich in persischer denke ich etwas wie das:

"^[آ-ی]$" 
+0

funktioniert nicht bei php –

+4

nicht mit irgendwelchen persischen Zeichen funktionieren wie "Î", "پ", ... weil dies nicht in arabischer Sprache ist! Ich denke besser ist Verwendung: [\ u0600- \ u06FF] –

17

persischen Zeichen sind im Bereich finden: [\u0600-\u06FF]

Versuchen:

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

'[\ u0600- \ u06FF \ uFB8A \ u067E \ u0686 \ u06AF]' ist besser . siehe http://stackoverflow.com/a/22565376/896465 – seyed

+0

@ downvoter: Irgendwelche Gründe? – Toto

8

Ich benutze diese RegExp in meinem Programm, und es funktioniert korrekt. hoffen, Ihnen zu helfen:

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

persische Zeichen im Bereich sind: [\ u0600- \ u06FF] + [\ s]

Versuchen:

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

Diese Pater Enthalten Brief und Raum Darsteller.

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

Diese enthalten nur Standard-Arabisch Symbole reichen aber Perser sind 4 Weitere Zeichen:

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

So sollten Sie verwenden:

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

Wenn Sie vergleichen wollen Null-breiten- Nicht-Tischler sollten Sie dies auch hinzufügen:

\u200C 
+2

in Betracht ziehen, Platz und Null-Breite non-Joiner in Zeichen zu akzeptieren! https://stackoverflow.com/a/34869397/5160077 –

Verwandte Themen