关于input的检验问题
写了很多小应用 但是 对于input有很多 相同的需求 在这里做一个总结 将用的多的校验方法 封装为方法 使用
1.只能输入正整数的校验 输入的时候同时校验 将字符类型的全部替换为空
<input type="text" class="form-control input-sm" id="buyLimit" min="0" placeholder="至少为0" required value="0" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
2.只输入正整数的校验
isPlusNum:function (txt) { if(txt.trim().length){ if(!isNaN(txt)){ //0的情况另外讨论 if(Number(txt)===0){ return true } //正整数 if(/^[1-9]+[0-9]*]*$/.test(txt)){ return true } } return false } return false },
3.最多两位小数的校验 通过判断小数点的位置 来判断 是否最多两位小数
//最多两位小数的校验 maxTwoLittleNum:function (vlue) { var str = vlue.indexOf("."); var numlength = 0; if (str > -1) { index = vlue.substring(str + 1, vlue.length); numlength = index.length; if(numlength>2){ return false }else { return true } }else { return true } }
4.金额的校验
//金额的校验 moneyFn:function (obj) { var txt=obj.value if(txt.trim().length){ if(!isNaN(txt)){ //0的情况另外讨论 if(Number(txt)==0){ return true } if(Number(txt)<0){ layer.msg('金额只能为正数') ;$(obj).val('') return false } //小数点校验 if(goodCreate.maxTwoLittleNum(txt)){ return true }else{ $(obj).val('') layer.msg('金额只能输入两位小数') return false } } $(obj).val('') layer.msg('请输入正确金额') return false } $(obj).val('') layer.msg('请输入金额') return false },
5.视频类型的校验 不是最全
/(mp4|avi|WMV|RM|RMVB|MPEG1|MPEG2|MPEG4|3GP|ASF|SWF|VOB|DAT|MOV|M4V|FLV|F4V|MKV|MTS|TS)$/.test(txt)
6.电话号码 手机号+3到4位区号-6-8位电话号+400开头的电话号
(/^1[3,4,5,6,7,8,9]\d{9}$/).test(reservationTel) || (/^[0-9]{3,4}\-[0-9]{6,8}$/).test(reservationTel) || (/^400-([0-9]){1}([0-9-]{7})$/).test(reservationTel)
以上 以后有用到 再继续总结