JS,文本框只能输入整数或两位小数的整数

来源:互联网 发布:网络用语立场什么意思 编辑:程序博客网 时间:2024/05/28 15:07
<input id="dtrunSpeed" name="dtrunSpeed" type="text" style="width: 220px;"                                               required="true" class="easyui-validatebox" onkeyup="onNumValid(this);" onblur="onNumValidBlur(this,this.value);"/>


<script type="text/javascript">    function onNumValid(obj){        obj.value = obj.value.replace(/[^\d.]/g,""); //清除"数字"和"."以外的字符        obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字而不是        obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的        obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");        obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); //只能输入两个小数    }    function onNumValidBlur(obj,val){        var indexs1 = val.indexOf('.');        if(indexs1 == -1){//整数            if(val.charAt(0) == 0){//以0开始,处理000、001非法情况                var k = 0;                for(var i = 0;i < val.length; i++){                    k = k + 1;                    if(val.charAt(i) != 0){                        val = val.substring(i,val.length);                        obj.value = val;                        return;                    }                }                //alert(k);                if(k == val.length){                    val = 0;                    obj.value = val;                    return;                }            }        }else{//小数            if(val.charAt(val.length-1) == '.'){//处理以“.”结尾的非法情况                val = val.substring(0,val.length-1);            }            if(val.charAt(0) == 0 && val.charAt(1) != '.'){                var k = 0;                for(var i = 0;i < val.length; i++){                    k = k + 1;                    if(val.charAt(i) != 0){                        if(val.charAt(i) == '.'){//以0开始,处理00.1、000.1非法情况                            val = val.substring(i-1,val.length);                            obj.value = val;                            return;                        }else{//以0开始,处理01.1、001.1非法情况                            val = val.substring(i,val.length);                            obj.value = val;                            return;                        }                    }                }                if(k == val.length){                    val = 0;                    obj.value = val;                    return;                }            }else{                obj.value = val;                return;            }        }    }</script>


0 0