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');
    }

使用方法javascript

<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>
相關文章
相關標籤/搜索