C#中如何限制textbox中只能输入数字和字母

wynlc 2008-07-17 09:28:06
只知道大体思路是限制住数字和字母的值范围 让它们不可用
大具体的实现 搞不清楚
C#中如何限制textbox中只能输入数字和字母?
请教下思路和具体的实现
...全文
11412 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunming1993 2012-05-28
  • 打赏
  • 举报
回复
<input id="Number" type="text" style="width:25px" onkeyup= "value=value.replace(/[^\d]/g, ' ') "onbeforepaste= "clipboardData.setData( 'text ',clipboardData.getData( 'text ').replace(/[^\d]/g, ' ')) " />
Demon_wk 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wynlc 的回复:]

引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写
如果不是数字或者字母的话设置 e.handle =true


这个了解
我只是想知道 数字和字母的取值范围
C# code
if ((e.KeyChar>='a'&&e.KeyChar<='z')||(e.KeyChar>='A'&&e.KeyC……
[/Quote]
但这样引用之后,在textbox里无法删除字母...求解
virusswb 2008-07-17
  • 打赏
  • 举报
回复
asp.net可以用验证控件结合正则表达式
winform就用maskedtextbox,他和webform中的验证控件是差不多
virusswb 2008-07-17
  • 打赏
  • 举报
回复
只能输入数字:"^[0-9]*$"。
只能输入n位的数字:"^\d{n}$"。
只能输入至少n位的数字:"^\d{n,}$"。
只能输入m~n位的数字:。"^\d{m,n}$"
只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
只能输入非零的正整数:"^\+?[1-9][0-9]*$"。
只能输入非零的负整数:"^\-[1-9][]0-9"*$。
只能输入长度为3的字符:"^.{3}$"。
只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。
验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。
只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
quguoping1017 2008-07-17
  • 打赏
  • 举报
回复
在验证控件里,使用正则表达式
quguoping1017 2008-07-17
  • 打赏
  • 举报
回复
用验证控件啊,控制输入类型范围什么的
我姓区不姓区 2008-07-17
  • 打赏
  • 举报
回复 1
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !char.IsLetterOrDigit(e.KeyChar);
}
allanmorgan 2008-07-17
  • 打赏
  • 举报
回复
个人感觉正则表达式很好用。数字和字母的正则表达式是:^[A-Za-z0-9]+$
xutao888 2008-07-17
  • 打赏
  • 举报
回复
function chk()
{
if(!document.all("textbox").value.match(/^[1-9a-zA-Z]+$/))
{
alert("只能输入字母或数字!");
return false;
}
}
zzyhuian06142 2008-07-17
  • 打赏
  • 举报
回复
(int)e.KeyChar>=49 &&(int)e.KeyChar <=57
zzyhuian06142 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wdgphc 的回复:]
引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写
如果不是数字或者字母的话设置 e.handle =true


但是这样不能防范用复制->粘贴过来的.
所以还是建议用TextChanged做实时判断.或在textBox失去焦点时判断一次,出错就提示
[/Quote]
直接再显示Ctrl +c和Ctrl + v不就可以了
wynlc 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wdgphc 的回复:]
引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写
如果不是数字或者字母的话设置 e.handle =true


但是这样不能防范用复制->粘贴过来的.
所以还是建议用TextChanged做实时判断.或在textBox失去焦点时判断一次,出错就提示
[/Quote]

可以写入keydown 限制 复制
			if(	e.KeyCode == Keys.Down)
{
this.cboOutPutLaneCD.DroppedDown =true;
}
zzyhuian06142 2008-07-17
  • 打赏
  • 举报
回复
(int)e.KeyChar>=72 &&(int)e.KeyChar<=90好象是这个
qianduo 2008-07-17
  • 打赏
  • 举报
回复
使用正则表达式
wynlc 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zzyhuian06142 的回复:]
在KeyPress里面写
如果不是数字或者字母的话设置 e.handle =true
[/Quote]

这个了解
我只是想知道 数字和字母的取值范围
			if ((e.KeyChar>='a'&&e.KeyChar<='z')||(e.KeyChar>='A'&&e.KeyChar<='Z'))
{
e.Handled = false;
}
              else
e.Handled = true;

数字的就不清楚如何限制了
wdgphc 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zzyhuian06142 的回复:]
在KeyPress里面写
如果不是数字或者字母的话设置 e.handle =true
[/Quote]

但是这样不能防范用复制->粘贴过来的.
所以还是建议用TextChanged做实时判断.或在textBox失去焦点时判断一次,出错就提示
初吻给了烟 2008-07-17
  • 打赏
  • 举报
回复
可以在TextChanged事件里判断的
if (this.txtCD.Text.Length < 5)
{
foreach (char ch in this.txtCD.Text)
{
if (char.IsDigit(ch))//是否为数字
{ }
if (char.IsLetter(ch))//是否为字母
{ }
}
}
wdgphc 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zzyhuian06142 的回复:]
在KeyPress里面写
如果不是数字或者字母的话设置 e.handle =true
[/Quote]
wynlc 2008-07-17
  • 打赏
  • 举报
回复
csdn 看到回帖有时刷不出来 汗
zzyhuian06142 2008-07-17
  • 打赏
  • 举报
回复
在KeyPress里面写
如果不是数字或者字母的话设置 e.handle =true
加载更多回复(1)

110,536

社区成员

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

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

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