• 页面文本框限制输入数字,小数以及将数字转换成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是匹配数字,\.是代表可以输入小数点
  • 相关阅读:
    制定并分享愿景 领导的艺术之一
    不要非黑即白,有些数据即使只有90%的准确,也是有用的
    双赢的思维考虑问题
    利用一切机会丰富自己的知识,利用一切机会调整自己的行为,为了达成目标而与他人合作,取得共赢 update by June 2012
    数据说话 说服别人
    对重要的事情,要很快做出反应
    You can if you think you can
    宽容的心态,开明的头脑
    DataGridView上下移动行及设置当前行
    sql 数据库、表
  • 原文地址:https://www.cnblogs.com/yangzhilong/p/2891864.html
Copyright © 2020-2023  润新知