JSFiddle - React, Tailwind, and code Playground
by anoop chandran
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="App">
<div ng-controller="Ctrl">
<input type="text" ng-model="testtext1" mask="{{format1}}" />
<input type="text" ng-model="testtext2" mask="{{format2}}" />
<input type="text" ng-model="testtext3" mask="{{format3}}" />
</div>
</div>
JavaScript
(function(){
"use strict";angular.module("ngMask",[]),angular.module("ngMask").directive("mask",["$log","PatternService","SelectorService",function(a,b,c){return{restrict:"A",require:"ngModel",compile:function(){return{post:function(a,d,e,f){function g(a){if(!a)return void 0;for(var b=j.split(""),c=h.compose(j,a.toString(),i).substr(0,j.length),d=!1,e="",g=0;g<c.length;g++){var l=i[b[g]],m=c[g];l&&!l.test(m)?(d=!0,e+=m):(!l||l&&l.test(m))&&(e+=m)}return d||e.length<j.length?f.$setValidity("mask",!1):f.$setValidity("mask",!0),a!==e&&(f.$setViewValue(e,"input"),f.$render()),k?e.replace(RegExp("["+k.join("")+"]","gi"),""):e}var h=b.create(),i=h.getPatterns(),j=h.generateMask(e.mask,e.repeat),k="true"===e.clean?h.generateSeparators(j,i):void 0;d.on("focus input click keydown paste",function(){c.setCaretPosition(this,j,this.value,i)}),f.$parsers.push(g);var l=a.$watch(e.ngModel,function(a){angular.isDefined(a)&&(g(a),l())});e.ngValue&&a.$evalAsync(function(){g(e.ngValue)})}}}}}]),angular.module("ngMask").factory("ComparatorService",[function(){function a(a,b){return a.length<b.length?a.length:b.length}function b(a,b){return a.length>b.length?a.length:b.length}return{min:a,max:b}}]),angular.module("ngMask").factory("PatternService",["ComparatorService",function(a){function b(){function b(a,b){for(var c=[],d=0;d<a.length;d++){var e=b[a[d]];e||c.push("\\"+a[d])}return l=c,c}function c(a,b){var c="";if(1===a.length&&b)for(var d=0;d<parseInt(b);d++)c+=a;else c=a;return k=c,c}function d(){return m}function e(){return l}function f(){return k}function g(){return n}function h(){return j}function i(b,c,d){for(var e=c,f=a.min(b,c),g=0;f>g;g++){var h=d[b[g]];if(!h&&e[g]!==b[g]){var j=e.split("");j.splice(g,0,b[g]),e=i(b,j.join(""),d);break}}return e}var...