/***************策略对象*************/
var strategies ={
isNotEmpty:function(value,errorMsg){if(value === ‘‘){returnerrorMsg;
}
},
minLength:function(value,length,errorMsg){if(value.length
}
},
isMobile:function(){if(!/(^1[3|5|8][0-9]{9}$)/.test(value)){returnerrorMsg;
}
}
}/***************validator类***************/
var Validator =function(){this.cache =[];
};
Validator.prototype.add=function(dom,rules){var self = this;for(var i=0,rule;rule = rules[i++];){
(function(rule){var strategyAry = rule.strategy.solit(‘:‘);var errorMsg =rule.errorMsg;
self.cache.push(function(){var strategy =strategyAry.shift();
strategyAry.unshift(dom.value);
strategyAry.push(errorMsg);returnstrategies[strategy].apply(dom,strategyAry);
})
})(rule);
}
}
Validator.prototype.start=function(){for(var i=0,validatorFunc;validatorFunc = this.cache[i++];){var errorMsg =validatorFunc();if(errorMsg){returnerrorMsg;
}
}
}/************客户调用代码***********/
var registerForm = document.getElementById(‘registerForm‘);var validatorFunc =function(){var validator = newValidator();
validator.add(registerForm.userName,[{
strategy:‘isNotEmpty‘,
errorMsg:‘用户名不能为空‘},{strategy:‘minLength:10‘,
errorMsg:‘用户名长度不能小于10位‘}]);
validator.add(registerForm.passWord,[{
strategy:‘minLength:6‘,
errorMsg:‘用户密码不能小于6位‘}]);
validator.add(registerForm.phoneNumber,[{
strategy:‘isMobile‘,
errorMsg:‘手机号码格式不正确‘}]);var errorMsg =validator.start();returnerrorMsg;
}
registerForm.οnsubmit=function(){var errorMsg =validatorFunc();if(errorMsg){
alert(errorMsg);return false;
}
}