【www.gdgbn.com--正则表达式】

下面提供一款js验证数字单双精度函数哦,可以判断数据是double还float int等数据类型。

function f_check_double(obj){
    var numreg;
    var value = obj.value;
    var strvaluetemp, strint, strdec;    
    var dtype = obj.eos_datatype;
    var pos_dtype = dtype.substring(dtype.indexof("(")+1,dtype.indexof(")")).split(",");
    var len = pos_dtype[0], prec = pos_dtype[1];
    try
    {        
        numreg =/[-]/;
        strvaluetemp = value.replace(numreg, "");
        numreg =/[+]/;
        strvaluetemp = strvaluetemp.replace(numreg, "");
        //整数
        if(prec==0){
            numreg =/[.]/;
            if(numreg.test(value) == true){
                f_alert(obj, "输入必须为整数类型");
                return false;    
            }            
        }        
        if(strvaluetemp.indexof(".") < 0 ){
            if(strvaluetemp.length >( len - prec)){
                f_alert(obj, "整数位不能超过"+ (len - prec) +"位");
                return false;
            }        
        }else{
            strint = strvaluetemp.substr( 0, strvaluetemp.indexof(".") );        
            if(strint.length >( len - prec)){
                f_alert(obj, "整数位不能超过"+ (len - prec) +"位");
                return false;
            }
            strdec = strvaluetemp.substr( (strvaluetemp.indexof(".")+1), strvaluetemp.length );    
            if(strdec.length > prec){
                f_alert(obj, "小数位不能超过"+  prec +"位");
                return false;
            }        
        }        
        return true;
    }catch(e){
        alert("in f_check_double = " + e);
        return false;
    }    
}

本文来源:http://www.gdgbn.com/aspjiaocheng/27680/