ASP.Net TextBox控件只允许输入数字(转)

1.1、在Asp.Net TextBox 控件的 OnKeyPress 事件中指定输入键盘码必须为数字:
 

注意:如果不允许输入小数点去掉“event.keyCode==46”这种情况

或者:<asp:TextBox ID="TextBox" runat="server" οnkeyup='value=value.replace(/[^d]/g,'') ' onbeforepaste='clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))' MaxLength="15"> </asp:TextBox>

  类似方法一:
if(e.KeyChar!=8!Char.IsDigit(e.KeyChar)e.KeyChar!='.'){ e.Handled = true; } 
  类似方法二:
if ((e.KeyChar < 48 || e.KeyChar > 57) (e.KeyChar != 8) e.KeyChar!='.'){ e.Handled = true; }
  类似方法三:
if (!Char.IsNumber(e.KeyChar) !Char.IsPunctuation(e.KeyChar) !Char.IsControl(e.KeyChar)){ e.Handled = true;}
  解释:其中e.KeyChar是键盘输入的键对应的字符,IsDigit函数可以判断是否为0到9的数字,Chr(8)
  为退格键,当e.Handled为True时,程序认为该KeyPress事件已经被处理过了,文本框的内容也就不会发生变化
  如果文本需要输入小数的话,就要能够输入小数点.,而且小数点只能输入一次
  //IsNumber:指定字符串中位于指定位置的字符是否属于数字类别
  //IsPunctuation:指定字符串中位于指定位置的字符是否属于标点符号类别
  //IsControl:指定字符串中位于指定位置的字符是否属于控制字符类别
  注意: 这里是在输入时便限制其他类型的字符被写入 TextBox;
  就是说你不输入正确或你输入的不是数字我就不让你做其他任何工作!
  霸道吧? 呵呵, 如果你不喜欢这种方式, 下面有几种允许用户先随便输入,
  然后再判断, 如果不是整数, 我给你来个警告, 告诉你输入类型不正确, 请重新输入!
  ---不过在我看来, 这种做法有些不道德, 等着你犯错.

  类似方法四: 正则表达式.
  string regExp  =  /^[1-9][0-9]*$/;  
     if(!regExp.test( this.txtLogin.Text))  
     {  
    alert(只能是数字!);  
    this.txtLogin.clear();  
    return ; 
     }
  类似方法五: 最没有想象力的(原始)判断方法---一个一个一个一个字符判断还需要加上个for循环和n个if:
  function isInt(a)  
     { var b = "0123456789";   
     var i;
        for  (i = 0; i <a.length; i++)  
   {     
     var c = a.charAt(i);  
     if (b.indexOf(c)  ==  -1) return false;  
   }  
   return true;  
 }

 

1.2、使用规则表达式来验证:
<asp:TextBox ID="UserQQ" runat="server" Columns="18" MaxLength="50" Width="130px"> </asp:TextBox> 
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="UserQQ" ErrorMessage="QQ号只能为数字" validationexpression="/d+"> </asp:RegularExpressionValidator>

 

1.3、支持多数据类型验证的TextBox:
 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值