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;   

  } 

posted on 2014-03-18 10:27  连一粝  阅读(995)  评论(0编辑  收藏  举报

导航