判断输入的是否字符(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
{
//确定是其他符号了
}
...全文
255 13 点赞 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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类可以实现
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2006-04-18 10:59
社区公告

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