判断输入的是否字符(A-Z,a-z),数字,其他字符,还有汉字的一种方法

si812cn 2006-04-18 10:59:12
首先假定文本框里只能输入一个字
string sTest = textbox.Text;
char cTest = Convert.ToChar(sTest);

byte[] byteValues = System.Text.ASCIIEncoding.ASCII.GetBytes(sTest);
string curValue = System.Text.ASCIIEncoding.ASCII.GetString(byteValues);

if(curValue.CompareTo(sTest) != 0)
{
//确定是正常ASCII之外的字符
}
else if(cTest.ToUpper() == cTest || cTest.ToLower() == cTest)
{
//确定是A-Z,a-z的字符
}
else if(Convert.ToInt32(cTest) >= 48 && Convert.ToInt32(cTest) <= 57 )
{
//这里使用ASCII比较而不用用try()catch()来判断是否数字是因为这样快多了
//确定是数字
}
else
{
//确定是其他符号了
}
...全文
376 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
si812cn 2006-04-18
  • 打赏
  • 举报
回复
但是好像并不是这样的,比如A也分全角和半角,我上次处理好像要分好多区位来处理的,
lovefootball 2006-04-18
  • 打赏
  • 举报
回复
那如果是韩文,日文,还它国家的语言呢?

----------------
匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]
si812cn 2006-04-18
  • 打赏
  • 举报
回复
谢谢各位提供了这么多的方法,受益匪浅。没想到正则的速度也挺快的
si812cn 2006-04-18
  • 打赏
  • 举报
回复
20011521() ( ) 信誉:94
散分吗
还是有错误

什么地方?
si812cn 2006-04-18
  • 打赏
  • 举报
回复
觉得还是正则简单:
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
string pat=@"[\u4e00-\u9fff]";
Regex rg=new Regex(pat);
Match mh=rg.Match(textBox1.Text);
if(!mh.Success)
return;
MessageBox.Show("不许输入中文");
textBox1.Undo();
}
汉子判断

那如果是韩文,日文,还它国家的语言呢?
huangguangdou 2006-04-18
  • 打赏
  • 举报
回复
正则表达式
sweig0721 2006-04-18
  • 打赏
  • 举报
回复
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13)
{
e.Handled = true;
MessageBox.Show("只能为数字!");
}
}
20011521 2006-04-18
  • 打赏
  • 举报
回复
static bool IsNumeric (string str)
{
System.Text.RegularExpressions.Regex reg1
= new System.Text.RegularExpressions.Regex(@"^[-]?\d+[.]?\d*$");
return reg1.IsMatch(str);
}
数字判断
20011521 2006-04-18
  • 打赏
  • 举报
回复
觉得还是正则简单:
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
string pat=@"[\u4e00-\u9fff]";
Regex rg=new Regex(pat);
Match mh=rg.Match(textBox1.Text);
if(!mh.Success)
return;
MessageBox.Show("不许输入中文");
textBox1.Undo();
}
汉子判断
20011521 2006-04-18
  • 打赏
  • 举报
回复
散分吗
还是有错误
jiezhi 2006-04-18
  • 打赏
  • 举报
回复
正则表达式啊,你看看msdn中的Regex
朝圆夜不圆 2006-04-18
  • 打赏
  • 举报
回复
用正则表达式!
regx类可以实现

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧