• 页面文本框限制输入数字,小数以及将数字转换成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是匹配数字,\.是代表可以输入小数点
  • 相关阅读:
    我的第一篇博客/markdown
    iOS开发编码建议与编程经验
    iOS 知识点梳理
    Objective-C中类和对象的介绍
    Linux虚拟机部署单机solr报错500解决方法之一
    day02:三元运算、布林非、列表等(20170214)
    day01:判断与循环(20170213)
    前端面试题大全2
    前端面试题大全
    [js] charAt()、charCodeAt()、fromCharCode()
  • 原文地址:https://www.cnblogs.com/yangzhilong/p/2891864.html
Copyright © 2020-2023  润新知