怎么判断输入的字符是否是数字不用try catch比较简单的判断方法

解决方案 »

  1.   

    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;
    }
    }
      

  2.   

    using System.Text.RegularExpressions;
            private static Regex RegNumber = new Regex("^[0-9]+$");
            public static bool IsNumber(string str)
            {
                Match m = RegNumber.Match(str);
                if (m.Success)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
      

  3.   

    验证控件 正则表达式只能输入数字:"^[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]*$。"^[0-9]*[1-9][0-9]*$" "^\\d+$
      

  4.   

    其实一般我们都要用try catch
    虽然正则可以判断是数字,但不能判断范围
    所以如果你将一个int64的数字字符串,往int32转又会出错 
    try
    {
       int userID = Request.QueryString["UserID"];//这里不仅仅是只判断输入是否是数字,数字的范围也应该要处理
    }
    catch{}
      

  5.   

    用正则表达式验证控件
    RegualerExpressionValidation
    在工具箱的验证栏内,很好用