Javascript模式(三) 策略模式
2024-08-29 00:31:29
var data = {
"username" : "zhangsan",
"password" : "12345690",
"code" : "abcd"
}; var validate = {
rules : {},
config : {},
msg : [],
check : function(data){
var k, rule, config, checker;
rule = this.rules;
config = this.config;
this.msg.length = 0;
for(k in data){
if(data.hasOwnProperty(k)){
if(!rule[k]){
throw new Error("validate.check error, error type: " + k + " not exist");
}
checker = this.rules[k];
if(!checker.validate(data[k])){
this.msg.push(checker.msg);
}
}
}
}
}; validate.rules.username = {
validate : function(username){
return username.length > 7;
},
msg : "用户名有误"
}; validate.rules.password = {
validate : function(password){
return password.length > 7
},
msg : "密码挂了"
}; validate.rules.code = {
validate : function(code){
return code === "abcdef";
},
msg : "验证码不对"
}; validate.check(data); if(validate.msg.length){
console.log(validate.msg.join("\n"));
}
最新文章
- HDU 2689 Sort it (树状数组)
- Nginx系列3之Nginx+tomcat
- HDU5845 Best Division
- libuv里的几个缺陷
- Quartz之主方法运行
- HtmlHelper
- Android 程序框架设计
- RMAN数据库恢复之控制文件和参数文件恢复
- c++11新特性(4) lambda捕捉块
- getDeclaredConstructor()与getConstructor的差别
- ibatis 学习笔记 3 - pfpfpfpfpf的专栏 - 博客频道 - CSDN.NET
- 通过java.net.URLConnection发送HTTP请求的方法
- PRINCE2认证
- Linux(Debian、Ubuntu、Deepin等)安装最新版Chrome Unstable
- [1] C# IS &; AS讲解
- Dora.Interception,为.NET Core度身打造的AOP框架:全新的版本
- Vue和后台交互的方式
- 记录怎样把安全证书导入到java中的cacerts证书库
- Cocos2d-x 3.0游戏开发之虚拟机IOS环境:匹配才是好,莫要随便升级软件
- ecshop二次开发 使用ecshop电子商务系统的100个小问题
热门文章
- inner join和left join 、right join 的区别?
- 2721: [Violet 5]樱花
- 【BZOJ4481&;JSOI2015】非诚勿扰(数学期望)
- 牛客挑战赛14-F细胞
- 【Linux】自主实现my_sleep【转】
- Manjaro linux软件源设置
- [翻译][Nokogiri官方教程] 解析HTML/XML文档 / Parsing an HTML/XML Document
- linux mmap 详解【转】
- php--点赞功能的实现
- git的使用学习(七)githup和码云的使用