2012-07-10 4 views

Antwort

24

eine Regex verwenden und prüfen, ob \p{IsCyrillic}, zum Beispiel:

if (Regex.IsMatch(stringToCheck, @"\p{IsCyrillic}")) 
{ 
    // there is at least one cyrillic character in the string 
} 

Diese für die Zeichenfolge wahr wäre „abcабв“, weil es enthält mindestens ein kyrillisches Zeichen. Wenn Sie wollen, dass es falsch ist, wenn es nicht kyrillischen Zeichen in der Zeichenfolge sind, verwenden:

if (!Regex.IsMatch(stringToCheck, @"\P{IsCyrillic}")) 
{ 
    // there are only cyrillic characters in the string 
} 

Dies würde für die Zeichenfolge „abcабв“ falsch sein, aber wahr für „абв“.

Um zu überprüfen, was der IsCyrillic namens Block oder anderen benannten Blöcken enthalten, haben einen Blick auf diese http://msdn.microsoft.com/en-us/library/20bw873z.aspx#SupportedNamedBlocks

+1

Es funktioniert gut, danke :) – vikifor

-3

Hier ist eine andere Lösung für dieses Problem ist

public bool isCyrillic(string textInput) 
{ 
bool rezultat=true; 
string pattern = @"[абвгдѓежзѕијклљмнњопрстќуфхцчџш]"; 
     char[] textArray = textInput.ToCharArray(); 
     for (int i = 0; i < textArray.Length; i++) 
     { 
      if (!Regex.IsMatch(textArray[i].ToString(),pattern)) 
      { 
       rezultat = false; 
       break; 
      } 
     } 
     return rezultat; 
} 
+0

Sie wirklich don Ich will das nicht machen. Das Überprüfen jedes einzelnen Charakters ist hier keine gute Idee. Wenn Sie sicherstellen möchten, dass jedes Zeichen der Zeichenfolge kyrillisch ist, können Sie '! Regex.IsMatch (textInput, @" \ P {IsCyrillic} ")' verwenden (beachten Sie das Großbuchstabe P, das die Prüfung negiert). Aber was ist, wenn Zahlen oder Zeichen wie "!,." etc.? Ihr Check würde false zurückgeben. Möchten Sie dieses Verhalten? – Hinek

+0

ja du hast recht ich werde alle Zeichen in string-Muster auf meine Weise setzen müssen. Deine Lösung ist in Ordnung. – vikifor

Verwandte Themen