首页 > Web开发 > 详细

js强制限制输入允许两位小数

时间:2019-12-04 18:37:34      阅读:118      评论:0      收藏:0      [点我收藏+]
      <input type="text" value="@item.CostCash.Value.ToString("#0.00")" class="cost" onKeyUp="amount(this)"  onBlur="overFormat(this)" />    

      /**
         * 实时动态强制更改用户录入
         * arg1 inputObject
         **/
        function amount(th) {
            var regStrs = [
                [^0(\\d+)$, $1], //禁止录入整数部分两位以上,但首位为0
                [[^\\d\\.]+$, ‘‘], //禁止录入任何非数字和点
                [\\.(\\d?)\\.+, .$1], //禁止录入两个以上的点
                [^(\\d+\\.\\d{2}).+, $1] //禁止录入小数点后两位以上
            ];
            for (var i = 0; i < regStrs.length; i++) {
                var reg = new RegExp(regStrs[i][0]);
                th.value = th.value.replace(reg, regStrs[i][1]);
            }
        }
        /**
         * 录入完成后,输入模式失去焦点后对录入进行判断并强制更改,并对小数点进行0补全
         * arg1 inputObject
         **/
        function overFormat(th) {
            var v = th.value;
            if (v === ‘‘) {
                v = 0.00;
            } else if (v === 0) {
                v = 0.00;
            } else if (v === 0.) {
                v = 0.00;
            } else if (/^0+\d+\.?\d*.*$/.test(v)) {
                v = v.replace(/^0+(\d+\.?\d*).*$/, $1);
                v = inp.getRightPriceFormat(v).val;
            } else if (/^0\.\d$/.test(v)) {
                v = v + 0;
            } else if (!/^\d+\.\d{2}$/.test(v)) {
                if (/^\d+\.\d{2}.+/.test(v)) {
                    v = v.replace(/^(\d+\.\d{2}).*$/, $1);
                } else if (/^\d+$/.test(v)) {
                    v = v + .00;
                } else if (/^\d+\.$/.test(v)) {
                    v = v + 00;
                } else if (/^\d+\.\d$/.test(v)) {
                    v = v + 0;
                } else if (/^[^\d]+\d+\.?\d*$/.test(v)) {
                    v = v.replace(/^[^\d]+(\d+\.?\d*)$/, $1);
                } else if (/\d+/.test(v)) {
                    v = v.replace(/^[^\d]*(\d+\.?\d*).*$/, $1);
                    ty = false;
                } else if (/^0+\d+\.?\d*$/.test(v)) {
                    v = v.replace(/^0+(\d+\.?\d*)$/, $1);
                    ty = false;
                } else {
                    v = 0.00;
                }
            }
            th.value = v;
        }

 

js强制限制输入允许两位小数

原文:https://www.cnblogs.com/LiChen19951127/p/11984560.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!