angularjs组件之input mask
2013-12-15 20:36 破狼 阅读(15059) 评论(1) 编辑 收藏 举报今天将奉献一个在在几个angularjs项目中抽离的angular组件 input mask。在我们开发中经常会对用户的输入进行控制,比如日期,货币格式,或者纯数字格式之类的限制,这就是input mask的使用场景,在项目中也是会经常被提及需的需求之一。
当然在官方的angular-ui ui-utils中有一个相应的组件叫做ui-mask,但是其mask功能是很初级脆弱的。所以我希望能得到一个更强大的mask组件。我所知的jquery.inputmask就是这样一个我所期望的强大的mask组件,所以我不必再去重造轮子,好的软件就是为了不停被重复利用。所以写了一个adapter,https://github.com/greengerong/green.inputmask4angular.
其使用如下,可以去下载项目查看其中的demo page。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | < div class="hero-unit"> < h1 >'Allo, 'Allo!</ h1 > < div > < h3 >mask</ h3 > < p >Mask: 99-9999999</ p > < input type="text" ng-model="test" input-mask="'mask'" mask-option="testoption"/> < pre >{{ test | json }}</ pre > </ div > < div > < h3 >y-m-d</ h3 > < p >Date: yyyy-MM-dd</ p > < input type="text" ng-model="test1" input-mask="'y-m-d'" format-option="dateFormatOption"/> < pre >{{ test1 | json }}</ pre > </ div > < div > < h3 >Regex</ h3 > < p >Email: "[a-zA-Z0-9._%-]+@[a-zA-Z0-9-]+\\.[a-zA-Z]{2,4}"</ p > < input type="text" ng-model="test3" input-mask="'Regex'" mask-option="regexOption"/> < pre >{{ test3 | json }}</ pre > </ div > < div > < h3 >Function</ h3 > < p >"[1-]AAA-999" or "[1-]999-AAA"</ p > < input type="text" ng-model="test4" input-mask="functionOption"/> < pre >{{ test4 | json }}</ pre > </ div > </ div > |
controller code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | 'use strict' ; angular.module( 'green.inputmaskApp' ) .controller( 'MainCtrl' , [ "$scope" , function ($scope) { $scope.testoption = { "mask" : "99-9999999" , "oncomplete" : function () { console.log(); console.log(arguments, "oncomplete!this log form controler" ); }, "onKeyValidation" : function () { console.log( "onKeyValidation event happend! this log form controler" ); } } //default value $scope.test1 = new Date(); $scope.dateFormatOption = { parser: function (viewValue) { return viewValue ? new Date(viewValue) : undefined; }, formatter: function (modelValue) { if (!modelValue) { return "" ; } var date = new Date(modelValue); return (date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate()).replace(/\b(\d)\b/g, "0$1" ); }, isEmpty: function (modelValue) { return !modelValue; } }; $scope.mask = { regex: [ "999.999" , "aa-aa-aa" ]}; $scope.regexOption = { regex: "[a-zA-Z0-9._%-]+@[a-zA-Z0-9-]+\\.[a-zA-Z]{2,4}" }; $scope.functionOption = { mask: function () { return [ "[1-]AAA-999" , "[1-]999-AAA" ]; }}; }]); |
这里值列列举了jquery.inputmask的简单实用方式,更复杂的方式请移步到jquery.inputmask查看。
作者:破 狼
出处:http://www.cnblogs.com/whitewolf/
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。该文章也同时发布在我的独立博客中-个人独立博客、博客园--破狼和51CTO--破狼。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2012-12-15 TypeScript
2010-12-15 FCK去掉p标签 和加Body标签