1

データベースからデータを取得するテキストフィールドがあります。アラビア語または英語の場合があります。動的に区別し、それに応じて配置を変更したい。つまり、テキストがアラビア語の場合は、右から左、そうでない場合は左から右にする必要があります。

4

2 に答える 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 に答える