如何判断textbox1中当前输入的字符?

sprite18 2006-12-04 01:02:03
因为我想让我的 textbox只能输入字符,所以用了正则表达式

if(Regex.IsMatch(textbox1.text,"[a-zA-Z,]+"))
{
return true;
}
else
{
return false;
}

现在问题是,如果我第一位输入的数字,报错---正确

如果第一位输入的是字符,第二位是数字,就不报错?

如何判断我当前输入的字符?
...全文
161 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
deria 2006-12-05
  • 打赏
  • 举报
回复
tjvictor(下一站----星星) 的应该可以解决的!
tyzs2001 2006-12-05
  • 打赏
  • 举报
回复
mark
yuzhlhua 2006-12-05
  • 打赏
  • 举报
回复
如果是汉字呢? 怎么判断?
汉字和字母是可以的,但数字是不可以的.怎么判断?
谢谢各位
QQ576006 2006-12-05
  • 打赏
  • 举报
回复
这个问题好解决,你要一个字符一个字符的去判断
在textbox的KeyUp事件里,去判断每个按下的键是否符合要求,不符合要求给予出错提示
灰太狼 2006-12-05
  • 打赏
  • 举报
回复
寫在keyPress事件中.
//0~9數字范圍。
private int start = 48;
private int end = 57;
private void Mask1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
try
{
int input = e.KeyChar ;
if ( input.Equals( 8 ) )
{
return ;//空格
}
if ( e.KeyChar.Equals('.') && !Mask1.Text.Length.Equals(0))
{
e.Handled = true;
SendKeys.Send("{tab}");
return ;
}
if ( input < start || input > end )
{
e.Handled = true;
}
}
catch( Exception ex )
{
MessageBox.Show( ex.Message );
}
}
yuzhlhua 2006-12-05
  • 打赏
  • 举报
回复
同样问题,学习.
believefym 2006-12-05
  • 打赏
  • 举报
回复
加个^$表示起始,不然你的正则式也那个匹配([a-z][A-Z])+\.的所有表达式,所以也能输入数字,只要开头是匹配正则式的
wang8712 2006-12-05
  • 打赏
  • 举报
回复
Regex rx = new Regex(@"^[a-zA-Z]+$");
string s = Console.ReadLine();
while (s != "exit")
{
Match m = rx.Match(s);
if (m.Success)
{
Console.WriteLine("yes");
}
else
{
Console.WriteLine("no");
}
s = Console.ReadLine();
}
sprite18 2006-12-05
  • 打赏
  • 举报
回复
我是觉得可能我不该写在textchanged里
这样,我判断的就是textbox1.text里的所有数值

那就会出现我所说的问题,

如果我第一位输入的数字,报错---正确

如果第一位输入的是字符,第二位是数字,就不报错?

如何判断我当前输入的字符?


private void textbox1_TextChanged(){
if(Regex.IsMatch(textbox1.text,"[a-zA-Z,]+"))
{
return true;
}
else
{
return false;
}
}
liujia_0421 2006-12-04
  • 打赏
  • 举报
回复
测试程序如下:
Regex rx = new Regex(@"^[a-zA-Z]+$");
string s = Console.ReadLine();
while (s != "exit")
{
Match m = rx.Match(s);
if (m.Success)
{
Console.WriteLine("yes");
}
else
{
Console.WriteLine("no");
}
s = Console.ReadLine();
}
liujia_0421 2006-12-04
  • 打赏
  • 举报
回复
用这个正则表达式:

Regex rx = new Regex(@"^[a-zA-Z]+$");
liujia_0421 2006-12-04
  • 打赏
  • 举报
回复
你的意思是说只能输入a-z,A-Z吗?

110,561

社区成员

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

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

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