input 标签输入限制只能输入数字(pc,移动端),金额验证

h5 input type=number 对于pc端及安卓手机可以限制住输入只能是数字,
但是对与移动端ios手机来说不起作用。
对于ios系统来说需要给input 添加属性pattern="[0-9]*"才能限制输入框只能输入数字。
金额验证:

   checkFloatNumber (val){
                let reg = new RegExp(/^[0-9]+(.[0-9]{1,2})?$/);
                let length_1 = val.length-1;
                let length_2 = val.length-2;
                if (val) { // 当输入了值
                    if (!reg.test(val)) { // 并且值不合法
                        if (reg.test(val.substr(0,length_1))) { // 如果除去最后一位前面的合法
                            if(val.charAt(length_1) == '.' && val.indexOf('.') == length_1) { 
                                // 当最后一位为小数点并且值中只有一个小数点,则保留值
                                this.items.paymoney = val;
                            } else {
                                // 否则去掉最后一位
                                this.items.paymoney = val.substr(0,length_1);
                            }
                        // 如果除去最后两位前面的合法并且最后两位都是小数点,就去掉最后一位
                        } else if (reg.test(val.substr(0,length_2)) && val.charAt(length_1) == '.' && val.indexOf('.') == length_2) {
                            this.items.paymoney = val.substr(0,length_1);
                        // 否则
                        } else  {
                            // 如果值只有一位且是小数点,或者值有两位且是‘0.’,则把值置为‘0.’
                            if(val == '.' || val.substr(0,length_1) == '0.'){
                                this.items.paymoney = '0.';
                            } else {
                               // 否则提示并清空
                               this.$alert({title:"请输入正确的数值"})
                               this.items.paymoney = null;
                            }
                        }
                    } else {
                    // 值合法的时候
                     // 如果第一位为0且第二位存在且第二位不是小数点,提示并清空值
                        if(val.charAt(0) == 0 && val.charAt(1) && val.charAt(1) !== '.'){
                            this.$alert({title:"请输入正确的数值"})
                            this.items.paymoney = null;
                        } else {
                          // 否则保留值
                            this.items.paymoney = val;
                        }
                    }
                }
            }

你可能感兴趣的:(html)