页面文本框限制输入数字,小数以及将数字转换成3位一逗号的数字

1、只允许输入数字的js

调用方法:onkeydown='return checkNum()'

function checkNum()
{
    var kc = event.keyCode;
     if(kc==229 ||kc==46 || kc==8 || kc==9 || (kc>=37 && kc<=40) || (kc>=96 && kc<=105)||(kc>=48 && kc<=57))
     {
      return true;
     }
     return false;
}

 

2、只允许输入小数的js

调用方法:onkeydown='return checkDecimal()'

如果需要限制输入的小数位数可以配合:onkeyup='return checkPrecision(this,2)'

function checkDecimal(){
     var kc = event.keyCode;
     if(kc==229 ||kc==46 || kc==8 || kc==9 || (kc>=37 && kc<=40) || (kc>=96 && kc<=105)||(kc>=48 && kc<=57) || kc==110 || kc==190)
     {
         var val = event.srcElement.value;
         if(!val && (kc==110 || kc==190)){//如果第一个字符就是点号直接返回
             return false;
         }
         if(val.indexOf(".")!=-1 && (kc==110 || kc==190)){//只如输入一个点
             return false;
         }
         return true;
     }
     return false;
}

限制小数精度的js

function checkPrecision(obj,precision){
    var val = obj.value;
    if(val && precision){
        if(val.indexOf(".")!=-1 && (val.length - val.lastIndexOf(".") - 1 > precision)){
            obj.value = val.substring(0,val.length-1);
            obj.focus();
            Event.stop(event);
        }
    }
}

 

3、将数字转换成3位一逗号的形式(多用于金额的表示)

调用方法:onchange事件或者onblur事件

function  formatSplitNum(num)
{   
    if(!/^(\+|-)?(\d+)(\.\d+)?$/.test(num)){
        return   num;
    }   
    var   a   =   RegExp.$1,   b   =   RegExp.$2,   c   =   RegExp.$3;   
    var   re   =   new   RegExp().compile("(\\d)(\\d{3})(,|$)");   
    while(re.test(b))   b   =   b.replace(re,   "$1,$2$3");   
    return   a   +""+   b   +""+   c;   
}

注意:在实际代码中这样的js方法只能做很基本的校验,如果配合以下几个方法使用效果会更佳

style="ime-mode:Disabled" onpaste="return !clipboardData.getData('text').match(/\D\./)"  ondragenter="return false" 
//此代码控制了不能粘贴非小数点的数字,\D是匹配数字,\.是代表可以输入小数点

 

你可能感兴趣的:(输入数字)