这是俺自己写的函数,一个用于判断是否为数字,一个用于类型integer
返回值为true or falsefunction  isNumeric( strValue ) {
           var objExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/; 
           return objExp.test(strValue);
}
function isInteger( strValue ) 
{
          var objExp  = /(^-?\d\d*$)/;
          return objExp.test(strValue);
}

解决方案 »

  1.   

    这个我也有自己写的,包括小数的判断。
    但有个问题,如果小数点有两个,就判断错误。
    我听说javascript好像带有自己的函数来判断的。function checkdata(str){
    for(i=0;i<str.length;i++){
    var ch = str.value.charAt(i);
    if(!(ch>=0 && ch<=9 || ch==".")){
    alert("error1");
    return false;
    }
    }
    }
      

  2.   

    javascript有自带的函数解决这个问题
    <input id=aa type=text onchange=Test()>
    <script>
    function Test(){
    if(isNaN(aa.value)) //这个方法就是了
    alert(" ");
    }
    </script> 
      

  3.   

    to lxf0088:
    不知你有否看懂回答,
    我的两个函数不仅可判断小数,且可判断小数点后有几位,小数点前有几位
    用于判断整数也可判断是否满足规定的位数;
    你写的函数实在不敢苟同,功能是否满足不提,实在太小儿科了;
      

  4.   

    我是仅仅懂一点javascript,所以那个个方法有些地方我看是看不懂。
    var objExp  =  /(^-?\d\d*\.\d*$)&brvbar;(^-?\d\d*$)&brvbar;(^-?\.\d\d*$)/;
    此行是何目的? 感谢yankee,我是有用到你的功能,需要判断小数点前和小数点后有几位,
    使用你的函数如何获取小数点前的位数,和小数点后的位数?
    望告知。
      

  5.   

    禁止在文本框中数据非数字:<input type="text" onkeypress="checkKey()"/><SCRIPT>
    function checkKey(){
       if (event.keyCode < 48) { event.returnValue=false; }
       if (event.keyCode > 57) { event.returnValue=false; }
    }
    </SCRIPT>
      

  6.   

    isNaN()不好用吗?
    越简单越好嘛
      

  7.   

    function isDecimal(str,i,j){
        var dot = str.indexOf(".");
        var dot_last = str.lastIndexOf(".");
        var str_f = str.substring(0,dot);
        var str_b = str.substring(dot+1);
        
        if(isNaN(str)){ 
            alert("不是合法的数字");
            return false;
        }
        else if(str!="" && str.length>1 && str.charAt(0)==0){
            alert("不是合法的整数!");
            return false;
        }
        else{
            if(dot==0 &brvbar;&brvbar; dot_last==0){
                alert("不是合法的数字");
                return false;
            }
            else if(dot==-1 && str.length>i){
                alert("整数位不能超过"+i+"位");
                return false;
            }
            else{
                if(str_f.length>i){
                    alert("整数位不能超过"+i+"位");
                    return false;
                }
                if(dot!=-1 && str_b.length>j){
                    alert("小数位不能超过"+j+"位");
                    return false;            
                }
            }
        }
        return true;
    }
      

  8.   

    http://www.csdn.net/expert/topic/112/112170.shtm
      

  9.   

    function isDecimal(str,i,j){
        var dot = str.indexOf(".");
        var dot_last = str.lastIndexOf(".");
        var str_f = str.substring(0,dot);
        var str_b = str.substring(dot+1);
        
        if(isNaN(str)){ 
            alert("不是合法的数字");
            return false;
        }
        else if(str!="" && str.length>1 && str.charAt(0)==0){
            alert("不是合法的整数!");
            return false;
        }
        else{
            if(dot==0 &brvbar;&brvbar; dot_last==0){
                alert("不是合法的数字");
                return false;
            }
            else if(dot==-1 && str.length>i){
                alert("整数位不能超过"+i+"位");
                return false;
            }
            else{
                if(str_f.length>i){
                    alert("整数位不能超过"+i+"位");
                    return false;
                }
                if(dot!=-1 && str_b.length>j){
                    alert("小数位不能超过"+j+"位");
                    return false;            
                }
            }
        }
        return true;
    }