http://download.csdn.net/detail/haohao8305/7238209#comment
var strategies = {
nonecheck:function(value,msg){
if(value===''){
return msg;
}
},
minlengthcheck:function(value,length,msg){
if(value.length<length){
return msg;
}
},
phonecheck:function(value,msg){
if(!/(^1[3|5|8][0-9]{9}$)/.test(value)){
return msg;
}
}
}
var Validator = function(){
this.storeEachValidatorCache=[];
}
Validator.prototype.add = function(dom,rules){
var self = this;
var addeach = function(rule){
var ary = rule.strategy.split(":");
var strategy = ary.shift();
ary.unshift(dom.value);
ary.push(rule.msg);
self.storeEachValidatorCache.push(function(){return strategies[strategy].apply(dom,ary);})
}
for(var i=0;i<rules.length;i++){
addeach(rules[i]);
}
}
Validator.prototype.start = function(){
for(var i=0,validateFun;validateFun=this.storeEachValidatorCache[i++];){
var errorMsg = validateFun();
if(errorMsg){
return errorMsg;
}
}
}
var validateFunc = function(){
var validator = new Validator();
validator.add(document.getElementById('registerForm').userName,[{
strategy:"nonecheck",
msg:"userName cannont be null"
},{
strategy:"minlengthcheck:7",
msg:'userName cannont less than 7'
}]);
return validator.start();
}
document.getElementById('registerForm').οnsubmit=function(){
var result = validateFunc();
if(result){
alert(result);
return false;
}
}