C# 文本框 限制只能输入半角数字

mafaming 2009-06-06 10:23:47
我找了很多资料,只有限制输入数字的,但没有限制输入全角数字,我想不让他输入全角数字,怎么办??急!!!
...全文
530 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingdayong 2009-10-26
  • 打赏
  • 举报
回复
学习一下
lzhdim 2009-10-26
  • 打赏
  • 举报
回复
进来看看。。。
turbohe2009 2009-09-08
  • 打赏
  • 举报
回复
学习一下,一会试试!
flyxc 2009-09-07
  • 打赏
  • 举报
回复
不太明确,我也遇到这个问题了,路过过来逛逛呵呵
zbsfxx 2009-06-19
  • 打赏
  • 举报
回复
是不是,切换到输入法后 输入数字是全角呀 打上.NET Framework2.0的补丁就可以了
wackyboy 2009-06-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lxcnn 的回复:]
引用 5 楼 newdigitime 的回复:
不会吧,正则 \d 不就只能匹配半角数字么

下面这个看你能输出全角么
<INPUT id="dtel" onKeyUp='value=value.replace(/[^\d]/gi,"")'>



这种属于javascript中的应用,不属于.NET中的应用
.NET中除非加了RegexOptions.ECMAScript参数,否则\d是可以匹配全角数字的
[/Quote]
顶过客 狂顶
mabailin 2009-06-18
  • 打赏
  • 举报
回复
这么多人讨论 学习收藏了
wuyq11 2009-06-18
  • 打赏
  • 举报
回复
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
byte[] array = System.Text.Encoding.Default.GetBytes(e.KeyChar.ToString());
if (!char.IsDigit(e.KeyChar)|| array.LongLength==2) e.Handled = true;
if (e.KeyChar == '\b' || e.KeyChar == '.') e.Handled = false;

}
光宇广贞 2009-06-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lxcnn 的回复:]
引用 5 楼 newdigitime 的回复:
不会吧,正则 \d 不就只能匹配半角数字么

下面这个看你能输出全角么
<INPUT id="dtel" onKeyUp='value=value.replace(/[^\d]/gi,"")'>



这种属于javascript中的应用,不属于.NET中的应用
.NET中除非加了RegexOptions.ECMAScript参数,否则\d是可以匹配全角数字的
[/Quote]

顶这个。

不同语言的正则规范是不一样的,正则目前并没有统一的标准,只是根据各个语言有各自的规范。
-过客- 2009-06-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 newdigitime 的回复:]
不会吧,正则 \d 不就只能匹配半角数字么

下面这个看你能输出全角么
<INPUT id="dtel" onKeyUp='value=value.replace(/[^\d]/gi,"")'>
[/Quote]

这种属于javascript中的应用,不属于.NET中的应用
.NET中除非加了RegexOptions.ECMAScript参数,否则\d是可以匹配全角数字的
mafaming 2009-06-18
  • 打赏
  • 举报
回复
你们都学过正则表达式吗?好学吗?
newdigitime 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 mafaming 的帖子:]
我找了很多资料,只有限制输入数字的,但没有限制输入全角数字,我想不让他输入全角数字,怎么办??急!!!
[/Quote]
不会吧,正则 \d 不就只能匹配半角数字么

下面这个看你能输出全角么
<INPUT id="dtel" onKeyUp='value=value.replace(/[^\d]/gi,"")'>
stan0714 2009-06-07
  • 打赏
  • 举报
回复
不知道LZ 要做什么?
要输全角就让用户输入好了。如果往数据库写入用Parameter来处理就行了
carl2500 2009-06-07
  • 打赏
  • 举报
回复

private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar!='\b' && !Char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
-过客- 2009-06-06
  • 打赏
  • 举报
回复
基本上是两种方式,一种是判断ASCII码,一种是用正则
用ASCII判断效率高,用正则判断更灵活一些
如果是用正则在,在.NET中不能用\d,要用[0-9],在.NET中\d是可以匹配全角数字的,而[0-9]就只匹配半角数字
北京的雾霾天 2009-06-06
  • 打赏
  • 举报
回复
全角字符也是字符,判断一下是否是全角的数字,如果是不处理.
可以参考这个:
只能对数值操作的TextBox
http://blog.csdn.net/hbxtlhx/archive/2004/11/12/178510.aspx

17,748

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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