1/** 2 * EA=è±æ¸, EAD=è±æ¸ + "_" + "-", N=ç´æ¸å, T=䏿èå ¨åå, ET=ä¸è±æ + 符è 3 */ 4eSoafApp.directive('eInputLimit', function() { 5 return { 6 restrict: 'A', 7 require: 'ngModel', 8// scope: { 9// pattern: '@pattern', 10// type: '@eInputLimit' 11// }, 12 link: function(scope, elm, attrs, ngModelCtrl) { 13 if (!ngModelCtrl) { 14 return; 15 } 16 ngModelCtrl.$parsers.push(function(val) { 17 var reg; 18 attrs.pattern = attrs.pattern || ''; 19 20 if("F" == attrs.eInputLimit) { 21 reg = new RegExp("^[0-9]+([0-9]*|[.]?[0-9]*)$", "g"); 22 23 if(val != undefined && !reg.test(val)) { 24 val += ""; 25 val = val.substr(0, val.length-1); 26 ngModelCtrl.$setViewValue(val); 27 ngModelCtrl.$render(); 28 } 29 30 return val; 31 } else { 32 if ("EA" == attrs.eInputLimit) 33 reg = new RegExp("[^a-zA-Z0-9" + attrs.pattern + "]", "g"); 34 else if ("EAD" == attrs.eInputLimit) 35 reg = new RegExp("[^a-zA-Z0-9-_" + attrs.pattern + "]", "g"); 36 else if ("N" == attrs.eInputLimit) 37 reg = new RegExp("[^0-9" + attrs.pattern + "]", "g"); 38 else if ("T" == attrs.eInputLimit) 39 reg = new RegExp("[\x21-\x7e" + attrs.pattern + "]", "g"); 40 else if ("ET" == attrs.eInputLimit) 41 reg = new RegExp("[0-9" + attrs.pattern + "]", "g"); 42 var clean = val == undefined ? undefined : val.replace(reg, ''); 43 clean = clean == '' ? undefined : clean; 44 if (val != clean) { 45 ngModelCtrl.$setViewValue(clean); 46 ngModelCtrl.$render(); 47 } 48 return clean; 49 } 50 }); 51 } 52 }; 53});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.