データベースからデータを取得するテキストフィールドがあります。アラビア語または英語の場合があります。動的に区別し、それに応じて配置を変更したい。つまり、テキストがアラビア語の場合は、右から左、そうでない場合は左から右にする必要があります。
2 に答える
1
アラビア語の文字数が英語の文字数よりも多い場合、テキストはアラビア語であると言えます。
正規表現の文字クラスを使用して決定できます
public bool IsArabic(this string input)
{
var isArabic = Regex.Matches(input, "\\p{IsArabic}");
var isLatin = Regex.Matches(input, "\\p{IsBasicLatin}");
if (isArabic == null)
return false;
if (isLatin == null)
return true; //suggest that there is no another character types
if (isArabic.Count > isLatin.Count)
return true;
return false;
}
于 2016-01-18T09:08:07.050 に答える
1
テキストにRTL マークが含まれている場合、Windows がそれを行います。
それ以外の場合は、単にUnicodeアラビア語コードブロックSystem.Char
で文字をチェックするだけです(コードポイントではなくコード単位を表すことを忘れないでください。この場合は問題ではありません) :
public bool IsArabic(string text)
{
return Regex.IsMatch(text, "[\u06000-\u06FF]")
}
于 2016-01-18T09:03:42.263 に答える