怎么用javaScript验证输入框的值,比如:一个文本框,和一个按钮,我想点击按钮时,对文本框的值进行验证(是否是float类型:如2.5,2这是正确的,而"aa", 2.5.3 ,.27,-.27),而且当输入了很大的一个值(超出范围,如:999999999999999999)等等,可能还不够全面,要考虑全面些。。
各位大虾,请帮忙呀。谢谢!!!!

解决方案 »

  1.   

    /*
    IsFloat(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)
    功能:判断是否为浮点数、正浮点数、负浮点数、正浮点数+0、负浮点数+0
    */function IsFloat(objStr,sign,zero)
    {
        var reg;    
        var bolzero;    
        
        if(Trim(objStr)=="")
        {
            return false;
        }
        else
        {
            objStr=objStr.toString();
        }    
        
        if((sign==null)||(Trim(sign)==""))
        {
            sign="+-";
        }
        
        if((zero==null)||(Trim(zero)==""))
        {
            bolzero=false;
        }
        else
        {
            zero=zero.toString();
            if(zero=="0")
            {
                bolzero=true;
            }
            else
            {
                alert("检查是否包含0参数,只可为(空、0)");
            }
        }
        
        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;     
        }
    }
      

  2.   

    用 javascript 
    提供个例子给你看看,可以自己拓展
    function _MaskInput(oInput, sReg, sInputStr)
    {
    var re = new RegExp(sReg);
    var docSel = document.selection.createRange();
    if(docSel.parentElement().tagName.toLowerCase() != "input")
    return false;
    oSel = docSel.duplicate();
    oSel.text = "";
    var srcRange = oInput.createTextRange();
    oSel.setEndPoint("StartToStart", srcRange);
    var str = oSel.text + sInputStr + srcRange.text.substr(oSel.text.length);
    return re.test(str);
    }
    // 只可以输入数字
    //bSign 用于判断是否可以输入负号
    //nInt  小数点前的位数   nDec 小数点后的位数
    function _SetDigitalInput(oInput,nInt,nDec,bSign)
    {
    if(typeof(bSign) != "boolean")
    bSign = false;
    oInput.style.imeMode = "disabled";
    var sReg = "^";
    if(bSign)
    sReg += "-?(";
    sReg += "\\\\d{1,"+nInt.toString()+"}";
    if(nDec > 0)
    sReg += "(\\\\.\\\\d{0,"+nDec.toString()+"})?";
    if(bSign)
    sReg += ")?";
    sReg += "$";
    oInput.onkeypress = new Function("return _MaskInput(this,'"+sReg+"',String.fromCharCode(event.keyCode))");
    oInput.onpaste = new Function("return _MaskInput(this,'"+sReg + "',window.clipboardData.getData('Text'))");
    oInput.ondrop = new Function("return _MaskInput(this,'"+sReg + "',event.dataTransfer.getData('Text'))");
    }在文本框的属性中加 onkeydown=_SetDigitalInput(this,小数点前的位数,小数点后的位数,true or false);