js正则表达式——数字校验

// 只能输入正数
    function clearNoNum(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(".","$#$").replace(/\./g,"").replace("$#$",".").replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
    }

// 可正数可负数
    function clearNoNum(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(/\-{2,}/g,"-"); // 当存在连续的多个“-”时,只保留一个
        obj.value = obj.value.replace("-","$#$").replace(/\-/g,"").replace("$#$","-"); // 只保留第一个“-”,清除多余的“-”
        if (!(/^\-/.test(obj.value))) { // 如果行首不是“-”,则不允许有“-”
            obj.value = obj.value.replace("-","");
        }
        // 只能输入小数点后两位
        obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
    }

使用方法

<html>
<head>
<script type="text/javascript">
    function clearNoNum2(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(/\-{2,}/g,"-"); // 当存在连续的多个“-”时,只保留一个
        obj.value = obj.value.replace("-","$#$").replace(/\-/g,"").replace("$#$","-"); // 只保留第一个“-”,清除多余的“-”
        if (!(/^\-/.test(obj.value))) { // 如果行首不是“-”,则不允许有“-”
            obj.value = obj.value.replace("-","");
        }
        // 只能输入小数点后两位
        obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
    }
</script>
</head>
<body>
    <input type="text" autocomplete="off" id="mitxt_jzjy_matchamt" onkeyup="clearNoNum2(this)" />
</body>
</html>

 

posted @ 2019-01-18 16:25  carlo-z  阅读(7727)  评论(0编辑  收藏  举报