JS模式:策略模式,感觉就是一个闭包存储信息,然后是加一些验证方法--还看了老半天
2013-11-20 15:53
525 查看
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <script> var varlidator; varlidator = { validate: function(value, type){ var value = value; var type = type; switch(type){ case 'isnonEmpty' : { //..yuju return true; } case 'isNumber' : { //..yuju return true; } case 'isAlphaNum' : { //..yuju return true; } default :{ return 'someting' } } } }; alert(validator.validate('123','isNonEmpty')) ; //有点像命令行模式; var validator = { types : {}, messages : [], config : {}, validate : function(data){ var i, msg , type, checker, result_ok; this.messages = []; for(var i in data){ if(data.hasOwnProperty(i)){ type = this.config[i]; checker = this.types[type]; if(!type){ continue; }; if(!checker){ throw{ name : 'ValidationError', message : 'no handler to validate type '+ type } }; result_ok = checker.validate(data[i]); if( !result_ok ){ msg = 'wrong' + checker.instructions; this.message.push( msg ); } } }; return this.hasErrors(); }, hasErrors : function(){ return this.message.length !== 0 } }; validator.types.inNonEmpty = { validate : function(value){ return value !== ''; }, instructions : 'value can“t be null' }; validator.types.isNumber = { validate : function(value){ return !isNaN( value ) }, instructions : '必须是数字哦' }; validator.types.isAlphaNum = { validator : function(value){ return !/[^a-z0-9]/i,test(value); }, instructions : '必须是数字哦' }; var data = { first_name : 'xx', last_name : '00', age : 26, username : 'qihao' }; validator.config = { first_name : 'isNumber', age : 'isNonEmpty', username : 'isAplhaNum' }; validator.validate( data ); validator.hasErrors(); </script> </body> </html>
相关文章推荐
- 一个流行且实用的JS表单验证提示,演示了怎么自定义错误信息的显示方式,同时通过写FormValid.showError类方法来实现错误显示方式自定义: errMsg 是一个错误消息的数组,这样方便自定
- 我在一个前端项目中用js整理的一些通用方法,其中使用到的思想,主要就是约定了。
- asp.net 利用cookie存储信息。刚刚入门就写了一个方法感觉还蛮好用
- js 一些验证方法 之一
- JS创建和存储 cookie的一些方法
- Loner_li 面向对象 实例练习--要求:用户输入上述四个字段的值,实例化一个Computer类,然后调用类中方法输出电脑详细信息
- 手把手教你自己写一个js表单验证框架的方法
- 一个实现ajax之后既可以刷新又可以让提示信息延长的js实现方法
- 通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
- 2.实现一个通讯录; 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联
- java 把一个大list分成N个小list,然后用map存储的小方法
- printStackTrace方法打出的详细信息存储到一个字符串中
- js调试记录,将客户的调试信息保存到服务器端的一个小方法。
- 你知道的,javascript语言的执行环境是"单线程模式",这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行,因此很多时候需要进行“异步模式”,请列举js异步编程的方法。
- EF中提示一个或者多个验证出现错误,查看 EntityValidationErrors 详细信息的解决方法
- 冰编程对派出类的功能进行验证。。 轿车类等 派生出自行车类 停车等方法。然后从该类为基类 最大速度。重量等字段以及开车 要求具有速度 定义一个车辆类
- 用c语言实现一个通讯录; 通讯录可以存储1000个人的信息,信息包括姓名、性别、年龄、电话、住址 提供方法: 1.添加联系人信息 2.删除指定联系人信息 3.查找指定联系人信息 4.修改指定联系&
- 通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
- 自制的一些js常用验证方法,有请大家给意见与补充
- JS实现本地存储信息的方法(基于localStorage与userData)