第一次在页面中,需要处理表单很多字段的校验,包括非空以及字段内容的验证,该字段可能必须是数字或者字母。
1 配置通用的验证方法,可适用于所有的表单验证。方法都是传入一个input控件的jquery对象,如果有其他验证参数,需要依次传入。
general-rule.js
var isInArray = function (arr, value) {
for (var i = 0, len = arr.length; i < len; i++) {
if (arr[i] === value) {
return true;
}
}
return false;
};
return {
/*验证是否是必填*/
required: function ($el) {
console.log($el);
return $.trim($el.val()) !== '';
},
/*是否全是数字*/
digit: function ($el) {
return /^\d+$/.test($.trim($el.val()));
},
/*长度是否等于某个数值*/
length: function ($el, len) {
return $.trim($el.val()).length === len;
},
/*长度是否等于一组取值点中的一个值*/
lengths: function ($el, lens) {
var len = $.trim($el.val()).length;
return isInArray(lens, len);
},
/*去除掉空白符的长度是否等于一组取值点中的一个值*/
deleteBlanksLengths: function ($el, lens) {
var val = $el.val().replace(/\s+/g, '');
var len = val.length;
return isInArray(lens, len);
},
/*是否在某个范围内*/
range: function ($el, min, max) {
var len = $el.val().replace(/\s+/g, '').length;
return min <= len && len <= max;
},
email:function($el){
var email=$.trim($el.val());
var reg=/^[a-z0-9]([a-z0-9\.]*[-_]?[\.a-z0-9]+)*@([a-z0-9]+[-_]?[a-z0-9]+)+([\.][a-z]{2,3})([\.][a-z]{2})?$/i;
return reg.test(email);
},
/*XX-XXXXXXXXXXX,移动电话,可以包含国家号码*/
phone:function($el){
var phone=$.trim($el.val());
var reg=/^[0-9]{2,3}[-]?[0-9]{9,11}$/g;
}
};
2.配置表单中每个字段的验证规则。
假如有以下的表单:
<form action="">
name:<input type="text" name="username"/>
<hr>
emeil:<input type="text" name="email"/>
<hr>
地址:<input type="text" name="address">
<hr>
tel:
<input type="text" name="telephone">
</form>