在网页上有一个textbox,对应的类型是string,要求在这个编辑框里输入数字,我加了一个CustomValidator(当不是数字时就进行警告),请问如何在代码中判断输入的是数字呢?

解决方案 »

  1.   

    convert.ToInt32(text1.text.trim)如果不能转换就会出现异常 用try捕捉出现异常就表明他不是数字
      

  2.   

    在textbox标记里添加
    onkeypress="if (!((event.keyCode >= 48 && event.keyCode <=57) || event.keyCode == 46 )) event.returnValue = false;"
      

  3.   

    考虑到效率还是用楼上的方法比较好.
    另外如果你一定要在后台判断,可以把输入的字符一个一个的转化为ASC码比对,但是不推荐这样做.
    也可以用正则表达式,写在后台前台都可以
      

  4.   

    static void Main(string[] args)
            {
                Regex   regex=new Regex(@"\d+");
                string myString = "ddafs12121";
                Match match = null;
                match = regex.Match(myString);
                if (myString.Equals(match.Groups[0].Value.ToString()))
                    Console.WriteLine("True");
                else
                    Console.WriteLine("False");
            }
      

  5.   

    Regex r = new Regex(@"^\d+$");
    Label1.Text = r.Match(TextBox1.Text).Success ? "right" : "wrong";
      

  6.   

    再写一个方法:
    int i;
    Label1.Text = int.TryParse(TextBox1.Text, out i) ? i.ToString() : "wrong";
      

  7.   

    try
    {
      int i=Convert.ToInt32(变量);
    }
    catch(Exception ex)
    {
      //不是int类型的就报错贝
    }
      

  8.   

    Label1.Text = int.TryParse(TextBox1.Text, out i) ? i.ToString() : "wrong";
      

  9.   

    try
    {
      int i=Convert.ToInt32(变量);
       //是数字
    }
    catch(Exception ex)
    {
      //不是int类型
    }
      

  10.   

    引入Micirsoft.ViusalBasic内有 IsNumeric方法
      

  11.   

    写正则干吗,费那劲!Javascript不是有个内置函数嘛,isNaN
      

  12.   

    quote:在textbox标记里添加
    onkeypress="if (!((event.keyCode >= 48 && event.keyCode <=57) || event.keyCode == 46 )) event.returnValue = false;"   这里只是判断一个字母的吧,我要判断一个string.何况假如是一个浮点数呢,有小数点的,这个估计判断不了吧。
      

  13.   

    xiahouwen(武眉博<活靶子.NET>) ( ) 信誉:105 
    方法最好
      

  14.   

    /////////////////////////////////
    //名称:检查文本框内容是否数字
    //版本:1.0
    //日期:2006-05-05
    //作者:roc
    /////////////////////////////////
     
    function IsNumeric(InputObject,ObjectTitle)
    {
    //var temp = parseInt(InputObject.value)
    if(!isNaN(InputObject.value))
    {
    return true;
    }
    else
    {
    alert(ObjectTitle+"只能是数字!")      
    InputObject.focus();
    return false;
    }
    }在textbox的标签中加上失去焦点的事件,如:onblur="IsNumeric(this,'编号')"
      

  15.   

    /^(\d*|\-?[1-9]+[0-9]*|\-?[1-9]+[0-9]*\.\d+|\-?[0-9]*\.\d+)$/ 
    整数或者浮点数
      

  16.   

    int rtnInt;
    try
    {
    rtnInt = Int.Parse(yourStr);
    }
    catch
    {
    rtnInt = 1;
    }
      

  17.   

    function IsInt(objStr,sign,includezero)
    {
        var reg;    
        var bolzero;    
        
        if(Trim(objStr)=="")
        {
            return false;
        }
        else
        {
            objStr=objStr.toString();
        }    
        
        if((sign==null)||(Trim(sign)==""))
        {
            sign="+-";
        }
        
        if((includezero==null)||(Trim(includezero)=="")||Trim(includezero) =="n") //不包含0
        {
            bolzero=false;
        }
        else
        {
            includezero=includezero.toString();
            if(includezero=="y")
            {
                bolzero=true;
            }
            else
            {
                alert("检查是否包含0参数,只可为(空、y, n)");
            }
        }
        
        switch(sign)
        {
            case "+-":
                //整数
                reg=/(^-?|^\+?)\d+$/;            
                break;
            case "+": 
                if(!bolzero)        //不包括0的正整数   
                {
                    //正整数                reg=/^\+?[0-9]*[1-9][0-9]*$/;
                }
                else      //包括0的正整数
                {
                    //正整数+0 (非负整数)
                    //reg=/^\+?\d+$/;
                    reg=/^\+?[0-9]*[0-9][0-9]*$/;
                }
                break;
            case "-":
                if(!bolzero)  //不包括0负整数            {
                    //负整数                reg=/^-[0-9]*[1-9][0-9]*$/;
                }
                else    //包括0的负整数
                {
                    //负整数+0 (非正整数)
                    //reg=/^-\d+$/;
                    reg=/^-[0-9]*[0-9][0-9]*$/;
                }            
                break;
            default:
                alert("检查符号参数,只可为(空、+、-)");
                return false;
                break;
        }
        
        var r=objStr.match(reg);
        if(r==null)
        {
            return false;
        }
        else
        {        
            return true;     
        }
    }
     
    /*
    IsFloat(string,string,int or string):
    功能:判断是否为浮点数、正浮点数、负浮点数、正浮点数+0、负浮点数+0
    includezero:检查范围是否包括0,y范围包括0,n范围不包括0,null范围不包括0
    */
    function IsFloat(objStr,sign,includezero)
    {
        var reg;    
        var bolzero;    
        
        if(Trim(objStr)=="")
        {
            return false;
        }
        else
        {
            objStr=objStr.toString();
        }    
        
        if((sign==null)||(Trim(sign)==""))
        {
            sign="+-";
        }
        
        if((includezero==null)||(Trim(includezero)=="")||Trim(includezero)=="n")
        {
            bolzero=false;
        }
        else
        {
            includezero=includezero.toString();
            if(includezero=="y")
            {
                bolzero=true;
            }
            else
            {
                alert("检查范围是否包括0,只可为(空、y, n)");
            }
        }
        
        switch(sign)
        {
            case "+-":
                //浮点数            reg=/^((-?|\+?)\d+)(\.\d+)?$/;
                break;
            case "+": 
                if(!bolzero)           
                {
                    //正浮点数
                    reg=/^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
                }
                else
                {
                    //正浮点数+0 (非负浮点数)
                    reg=/^\+?\d+(\.\d+)?$/;
                }
                break;
            case "-":
                if(!bolzero)
                {
                    //负浮点数
                    reg=/^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
                }
                else
                {
                    //负浮点数+0 (非正浮点数)
                    reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;
                }            
                break;
            default:
                alert("检查符号参数,只可为(空、+、-)");
                return false;
                break;
        }
        
        var r=objStr.match(reg);
        if(r==null)
        {
            return false;
        }
        else
        {        
            return true;     
        }
    }
     
    /*
    function CheckMoney(obj)
    {
        if (!IsFloat(obj.value,"+")){alert("输入格式100!(Input format 100!)") ;obj.value=''; return;}      //IsFloat(obj.value,"+"):不可以输入负数,IsFloat(obj.value):可以输入负数
        if (obj.value.indexOf('.') == -1) return;
        if (obj.value.length - obj.value.indexOf('.') > 3)
            {obj.value = obj.value.substr(0,obj.value.indexOf('.') + 3);}
    }
      

  18.   

    不推荐使用ascii码判断的方法,
    onkeypress="if (!((event.keyCode >= 48 && event.keyCode <=57) || event.keyCode == 46 )) event.returnValue = false;"这种方法有一个弊端,就是如果是全角情况下,输入全角数字,在这个地方判断不出来,但是到后台转换成数字的时候又会出错。
    所以还是建议使用正则。
      

  19.   

    /// <summary>
    /// 判断一个字符串是否是数字型的字符串
    /// </summary>
    /// <param name="strValue">字符串</param>
    /// <returns>是则返回true,否则返回false</returns>
    public static bool IsNumeric(string strValue)
    {
        return Regex.IsMatch(strValue, @"^[+-]?\d*[.]?\d*$");
    }
      

  20.   

    正则验证控件 定义 \d{1,20}  定义可以输入1-20位数字,(20可以改你需要的)
    再加一个 必须验证控件,这样后台不需要代码,这个 textbox 里面一定有数字,你直接用就是了。
      

  21.   

    .net不是有验证控件CompareValidator吗,只要该控件的Type设为Integr或Double就可以了
      

  22.   

    1、用maskedtextbox....直接点..
    2、
    on error goto ...
    cint(textbox1.text)
      

  23.   

    try catch捕捉转换异常。是个办法
      

  24.   

    To:Xpengfee(鲲鹏)  Re:写正则干吗,费那劲!Javascript不是有个内置函数嘛,isNaN
    isNaN 会这样:isNaN("12345a")=true;
      

  25.   

    private boolean isNumber(String string){
    boolean isNumber = true;
    try {
    int a = Integer.parseInt(string);
    } catch (NumberFormatException e) {
    isNumber = false;
    }
    return isNumber;
    }