我正在一个数据输入项目(Visual Studio Windows窗体)中,数据必须以两种主要语言输入,即英语和阿拉伯语。如果用户以英语输入,我希望某些字段显示错误提供者阿拉伯语领域,反之亦然,这可能吗? 谢谢。
答案 0 :(得分:0)
您可以自己编写逻辑的击键条件来检查输入的字母是否为英文字母。但这不是完美的解决方案,不适用于其他语言。
答案 1 :(得分:0)
只需检查输入文本中的所有字母是否都属于英语字母。
string text = "abc";
char[] englishAlphabet = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
bool english = true;
foreach (char c in text.ToLower())
if (!englishAlphabet.Contains(c))
{
english = false;
break;
}
if (english)
// Do some stuff
else
// Show error
与阿拉伯字母相同。
答案 2 :(得分:0)
您可以构建使用正则表达式检查阿拉伯字符的功能:
internal bool HasArabicCharacters(string text)
{
Regex regex = new Regex(
"^[\u0600-\u06FF]+$");
return regex.IsMatch(text);
}
或者您也可以使用正则表达式为英文字符构建一个函数:
internal bool HasEnglishCharacters(string text)
{
Regex regex = new Regex(
"^[a-zA-Z0-9]*$");
return regex.IsMatch(text);
}
然后,您可以执行以下操作:
private void textBox1_TextChanged(object sender, EventArgs e)
{
if(HasArabicCharacters(textBox1.Text) == true)
{
//have arabic chars
//delete text for example
}
else
{
//don't have arabic chars
}
}
输出:
؋ = return true;
a = return false;
ئ = return true;