TextBox只能输入数字几种判断方式

前台代码:   

  function isNum() {
            if(event.keyCode<48 || event.keyCode> 57){
                event.keyCode = 0;
            }
        }

<!--onkeypress是在用户按下并放开任何字母数字键时发生。系统按钮(例如,箭头键和功能键)无法得到识别-->
        <asp:TextBox ID="TextBox1" runat="server" οnkeypress="isNum();" ></asp:TextBox>
        <asp:Button ID="Button1" runat="server" οnclick="Button1_Click" Text="Button" />

 

后台代码:

 

  protected   void  Button1_Click( object  sender, EventArgs e)
    {
        
try
        {
            
double  num = Convert.ToDouble(TextBox1.Text);
        }
        
catch  (Exception)
        {
            Page.ClientScript.RegisterStartupScript(
this .GetType(), " alertNum " " <script>alert('请输入正确的数字!');</script> " );
            TextBox1.Text 
=   "" ;
            Page.ClientScript.RegisterStartupScript(
this .GetType(), " focus " " <script>document.forms[0]['TextBox1'].focus();</script> " );
        }
    }

 

第一种:
     try catch方法
     例:
     try
     {
       Convert.ToInt32("123"):
       Console.Write("是数字");
     }
     catch(Exception ex)
     {
       Console.Write("非数字");
     }
     注:如果有很多字符串要求判断,此方法需要大量的try catch 以及finally来处理后续的程序.不建议使用此方法。

第二种:
     正则表达式方法
     例:
     //引用正则表达式类
     using   System.Text.RegularExpressions; 
     Regex   reg=new   Regex("^[0-9]+$"); 
     Match   ma=reg.Match(text); 
     if(ma.Success) 
     { 
      //是数字 
     } 
     else 
     { 
     //不是数字 
     }
     注:此方法快捷,但不太容易掌握,尤其是正则表达式公式,如果有兴趣的朋友可以好好研究,这东西很好用的,建议使用。

第三种:
     Double.TryParse方法
     例:
     bool isNum=System.Double.TryParse("所要判断的字符串"  ,System.Globalization.NumberStyles.Integer,null,out );
     注:此方法快捷,方便,很容易被掌握,但是参数很多,有兴趣的朋友可以研究一下,建议使用。
 
NumberStyles枚举:

Integer指示使用 AllowLeadingWhite、AllowTrailingWhite 和 AllowLeadingSign 样式。这是复合数字样式。

AllowLeadingWhite指示在分析期间必须忽略前导空白字符。有效的空白字符具有 Unicode 值 U+0009、U+000A、U+000B、U+000C、U+000D 和 U+0020。

AllowTrailingWhite指示分析期间必须忽略结尾空白字符。有效的空白字符具有 Unicode 值 U+0009、U+000A、U+000B、U+000C、U+000D 和 U+0020。

AllowLeadingSign指示数字字符串可以具有前导符号。有效的前导符号字符是由 NumberFormatInfoPositiveSignNegativeSign 属性确定的。

Unicode 值

U+0009-->\t 水平制表符

U+000A-->\n  换行

U+000B-->\t 垂直制表符

U+000C-->\f 换页

U+000D--> \r 回车

 U+0020-->空格space

第四种:

ASCII 判断

private bool IsNumberic(string str)
{
if(str==null||str.Length==0)
return false;
system.text.asciiencoding ascii=new system.text.asciiencoding();
byte[]bytestr=ascii.getbyte(str);
foreach(byte c in bytestr)
{
if(c <48||c>57)
{
return false;
}
return true;
}
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值