/*<input type="text"name="open_id" isNull="notnull" minLen="4" maxLen="10" dataType="email|code|title|password|tel|INTEGER" value="${open_id}"/>
* */
$.fn.validation = function(obj){
var result = {check:true};
var attr = ["minLen","caption","maxLen","isNull","dataType"]
//获取obj中所有对象, 只要有一个对象不符合就返回
$(this).find("input").each(function(){
//console.log($(this).is(":hidden"));
if($(this).css("display") != "none"){
var o = {};
var that = $(this);
for(var i = 0 ; i < attr.length; i++) {
o[attr[i]] = that.attr(attr[i]);
}
o['val'] = that.val();
var msg = check(o);
if('' != msg) {
var list = result['list'];
if(!list) {
list = [];
result['list'] = list;
}
result.check = false;
list.push({obj:that,msg:msg});
}
console.log($(this).val());
}
});
return result;
}
function check(o) {
//var o = obj[e];
//取出对象中所有的限制条件 obj[e].minLen
var caption = o.caption ? o.caption:'';
var val = o.val ? o.val:'';
var minLen = o.minLen ? o.minLen:-1;
var maxLen = o.maxLen ? o.maxLen:-1;
var isNull = o.isNull ? o.isNull:-1;
var datatype = o.datatype ? o.datatype:-1;
var len = val.length;
//先判断是否为空
if(isNull!=-1 && /^notnull$/i.test(isNull) && len==0){
return caption+"不允许为空,请重新输入!";
}
//判断是否符合最小长度
if(minLen!=-1 && /^([0-9])([0-9])*$/.test(minLen)){
var t = val.replace(/[^\x00-\xff]/g,"AA");
if(t.length < minLen){
return caption + "输入长度不能小于"+minLen+"\r\n\r\n目前您输入的长度为(一个汉字占两个长度位置):"+t.length;
}
}
//判断是否符合最大长度
if(maxLen!=-1 && /^([0-9])([0-9])*$/.test(maxLen)){
var t = val.replace(/[^\x00-\xff]/g,"AA");
if(t.length > maxLen){
return caption + "输入长度不能超过"+maxLen+"\r\n\r\n目前您输入的长度为(一个汉字占两个长度位置):"+t.length;
}
}
//判断特殊内容验证
if(datatype!=-1){
if(/^email$/i.test(datatype)){
var reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
if(!reg.test(val)){
return caption + "不合法,请重新输入!";
}
}
if(/^code$/i.test(datatype)){
if (!/^\w+$/.test(val)){
return caption + "必须由字母、数字及下划线组成,请重新输入!";
}
}
if(/^title$/i.test(datatype)){
if(!/^[a-z\u4E00-\u9FA5]+$/i.test(val)){
return caption + "只能输入中文或字母,请重新输入!"
}
}
if(/^passowrd$/i.test(datatype)){
var reg = /^([a-zA-Z0-9])*([a-zA-Z0-9])*$"/;
if(!reg.test(val)){
return caption + "输入必须为数字或字母!";
}
}
if(/^tel$/i.test(datatype)){
var reg = /^([0-9])*-?([0-9])*$/;
if(!reg.test(val)){
return caption + "输入必须为-或数字!";
}
}
if(/^INTEGER$/i.test(datatype)){
console.log(val)
if(/^(-|\+)+/.test(val)){
return caption + "输入不能带有正负(+,-)符号,只能是正整数!";
}
if(/(\.)+/.test(val)){
return caption + "输入不能带有小数点(.)符号,只能是整数!";
}
}
}
return '';
}