2014年7月17日 星期四

JavaScript 敲打文字時,驗證整數和小數



// 驗證小數
// doc:Doc物件
function ValiFloat(doc) {
    var docValue = $(doc).val();

    // 驗證小數pattern
    var valiPattern1 = /^\d+[.]?\d*$/;
    var reValiPattern1 = /^\d+[.]?\d*/;

    // 驗證數字格式pattern ,針對 01 replace 1
    var valiPattern2 = /^[0]+\d+/;
    var reValiPattern2 = /[1-9]\.?\d*/;

    if (!valiPattern1.test(docValue)) {
        $(doc).val(reValiPattern1.exec(docValue))
    }
    else if (valiPattern2.test(docValue)) {
        $(doc).val(reValiPattern2.exec(docValue))
    }

}

// 驗證整數
// doc:Doc物件
function ValiNumber(doc) {

    var docValue = $(doc).val();

    // 驗證整數pattern
    var valiPattern1 = /[^0-9]/g;

    // 驗證數字格式pattern ,針對 01 replace 1
    var valiPattern2 = /^[0]+\d+/;
    var reValiPattern2 = /[1-9]\.?\d*/;

    if (doc.value != doc.value.replace(valiPattern1, '')) {
        doc.value = doc.value.replace(valiPattern1, '');
    }

    else if (valiPattern2.test(docValue)) {
        $(doc).val(reValiPattern2.exec(docValue))
    }

}

// 使用方法就在Jquery 的 $(document).ready(function ()
$(document).ready(function () {
   // 驗證小數
   $(document).on("keyup","selector",function(){
        ValiFloat(this);
   })

   // 驗證整數
   $(document).on("keyup","selector",function(){     
        ValiNumber(this);
   })
})


沒有留言:

張貼留言