我有一个要求,我有一个文本字段,我从数据库中提取数据。它可能是阿拉伯语或英语。我想动态区分它并相应地改变对齐。也就是说,如果文本是阿拉伯语,则应该从右到左,从左到右。
答案 0 :(得分:0)
如果文字包含RTL mark,则Windows会为您执行此操作。
否则你可能只是检查字符(不要忘记System.Char
代表代码单元,而不是代码点,但在这种情况下它不是问题){{3 }}:
public bool IsArabic(string text)
{
return Regex.IsMatch(text, "[\u06000-\u06FF]")
}
答案 1 :(得分:0)
如果阿拉伯字符数超过英文字符数,你可以说文字是阿拉伯语。
您可以使用character classes in regular expression
来确定它 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;
}