最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

验证策略模式实现

来源:动视网 责编:小采 时间:2020-11-27 20:12:55
文档

验证策略模式实现

验证策略模式实现:// 定义策略var strategy = { isNotEmpty: function(value, errorMsg){ if(value === ''){ return errorMsg; } }, minLength: function(value, length, errorMsg){ if(value.length <
推荐度:
导读验证策略模式实现:// 定义策略var strategy = { isNotEmpty: function(value, errorMsg){ if(value === ''){ return errorMsg; } }, minLength: function(value, length, errorMsg){ if(value.length <

// 定义策略var strategy = {
 isNotEmpty: function(value, errorMsg){
 if(value === ''){ 
 return errorMsg;
 }
 },
 minLength: function(value, length, errorMsg){
 if(value.length < length){ 
 return errorMsg;
 }
 },
 mobileFormat: function(value, errorMsg){
 if(!/(^1[3|5|8][0-9]{9}$)/.test(value)){ 
 return errorMsg;
 }
 }
}function Validator() {
 this.cache = [];
}
Validator.prototype.add = function(value, rules){
 for(var i = 0, rule; rule = rules[i++];){ 
 var self = this;
 (function(rule){
 self.cache.push(function(){
 var strategyRule = rule.strategy.split(':'); 
 var strategyName = strategyRule.shift(); // 各位看官注意啦, 如果直接使用[value].concat(strategyRule.push(rule.errorMsg))会出问题
 // 什么问题呢? 
 // strategyRule.push(rule.errorMsg)这货会返回length, 我TM调试了半天!
 strategyRule.push(rule.errorMsg); 
 var arr = [value].concat(strategyRule); 
 return strategy[strategyName].apply(null,arr);
 })
 })(rule);
 }
}
Validator.prototype.check = function(){
 for(var i = 0, checkFn; checkFn = this.cache[i++];){ 
 var msg = checkFn(); 
 if(msg){ 
 return msg;
 }
 }
}var validator = new Validator();
validator.add('12345', [
 {
 strategy: 'isNotEmpty',
 errorMsg: 'in not empty'
 },
 {
 strategy: 'minLength:10',
 errorMsg: 'length is less than 10'
 }
]);var tip = validator.check(); // tip: length is less than 10

文档

验证策略模式实现

验证策略模式实现:// 定义策略var strategy = { isNotEmpty: function(value, errorMsg){ if(value === ''){ return errorMsg; } }, minLength: function(value, length, errorMsg){ if(value.length <
推荐度:
标签: 验证 校验 策略
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top