iput利用正则表达式动态监控数据实现输入金额(限制整数输入位数和两位小数)

<input type="tel" οninput="clearNoNum(this)">

html代码如上:

js代码如下:

	$(document).ready(function () {
            var total;
            $("input.transparentInput").focus();
            var u = navigator.userAgent, app = navigator.appVersion;
            var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器
            var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
            if (isiOS) {
                $("input.transparentInput").attr('type','number')
            }
        });
        function clearNoNum(obj) {
        	var temp;
            obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符
            obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
            obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
            obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数
            if (obj.value.indexOf(".") < 0 && obj.value != "") { //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
                obj.value = parseFloat(obj.value);
            }
            obj.value.replace(/^\d{0,6}(\.\d{0,2})?$/g, function(matched,index,originalText){
            	temp = matched
            });
            if ($(obj).val().split('.')[0].length == 6) {
            	total = $(obj).val();
            	$(obj).val(temp);
            }else if($(obj).val().split('.')[0].length > 6){
            	$(obj).val(total);
            }else if($(obj).val()=='.'){
                $(obj).val('');
            }
        }

首先判断是ios还是安卓,ios不能用tel属性,换成number属性

其次根据正则表达式匹配并限制整数输入位数为6位



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值