主题:[讨论]通过unicode判断字符是全角还是半角的问题
我有一段程序,用来判断输入字符是半角还是全角,但是我无论输入什么字符程序都判断是全角。怪了,请高手帮我看看,问题在什么地方,如何改正?
private void BtnJudge_Click(object sender, EventArgs e)
{
string str ="a";
if(str== null)
{
MessageBox.Show("原始字符串不能为空!");
}
else
{
if(Regex.IsMatch(str, "^[^\u0000-\u00FF]*$"))
{
MessageBox.Show(str + "是半角字符");
}
if(Regex.IsMatch(str, "^[^\u4E00-\u9FA5]*$"))
{
MessageBox.Show(str + "是汉字");
}
if (Regex.IsMatch(str, "^[^\uFF00-\uFFFF]*$"))
{
MessageBox.Show(str+"是全角字符");
}
}
}
找道理应该返回半角字符,可我程序偏返回说全角字符。
private void BtnJudge_Click(object sender, EventArgs e)
{
string str ="a";
if(str== null)
{
MessageBox.Show("原始字符串不能为空!");
}
else
{
if(Regex.IsMatch(str, "^[^\u0000-\u00FF]*$"))
{
MessageBox.Show(str + "是半角字符");
}
if(Regex.IsMatch(str, "^[^\u4E00-\u9FA5]*$"))
{
MessageBox.Show(str + "是汉字");
}
if (Regex.IsMatch(str, "^[^\uFF00-\uFFFF]*$"))
{
MessageBox.Show(str+"是全角字符");
}
}
}
找道理应该返回半角字符,可我程序偏返回说全角字符。