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+).(dd).*$/, '$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+).(dd).*$/, '$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+).(dd).*$/, '$1$2.$3');
    }
</script>
</head>
<body>
    <input type="text" autocomplete="off" id="mitxt_jzjy_matchamt" onkeyup="clearNoNum2(this)" />
</body>
</html>
原文地址:https://www.cnblogs.com/carlo/p/10288318.html