From c0b4f06f0aeb9e023ab4e48303b2a3b013a50e11 Mon Sep 17 00:00:00 2001 From: darc Date: Fri, 15 May 2015 12:05:26 -0300 Subject: [PATCH] fix(i.e.): i.e. masks should only works for string values --- releases/br-masks-standalone.js | 7 ++++++- releases/br-masks-standalone.min.js | 2 +- releases/br-masks.js | 7 ++++++- releases/br-masks.min.js | 2 +- src/ie.js | 6 +++++- test/ie.test.js | 4 ++++ 6 files changed, 23 insertions(+), 5 deletions(-) diff --git a/releases/br-masks-standalone.js b/releases/br-masks-standalone.js index b72c833..2b9c27f 100644 --- a/releases/br-masks-standalone.js +++ b/releases/br-masks-standalone.js @@ -271,6 +271,10 @@ var FINANCE = function(value, precision, decimalSep, groupSep) { /*exported IE */ var IE = function(value, uf) { + if (!value || typeof value !== 'string') { + return value; + } + var ieMasks = { 'AC': [{mask: new StringMask('00.000.000/000-00')}], 'AL': [{mask: new StringMask('000000000')}], @@ -330,7 +334,7 @@ var IE = function(value, uf) { } var mask = getMask(uf, value); - if(!value || !mask) { + if(!mask) { return value; } var processed = mask.process(clearValue(value)); @@ -362,6 +366,7 @@ var PHONE = function(value) { } var formatedValue; + value = value + ''; if(value.length < 11){ formatedValue = phoneMask8D.apply(value); }else{ diff --git a/releases/br-masks-standalone.min.js b/releases/br-masks-standalone.min.js index 857e0c1..acc8915 100644 --- a/releases/br-masks-standalone.min.js +++ b/releases/br-masks-standalone.min.js @@ -1 +1 @@ -!function(e,n){"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?module.exports=n():e.StringMask=n()}(this,function(){function e(e,n){for(var t=0,r=n-1,s={escape:!0};r>=0&&s&&s.escape;)s=a[e.charAt(r)],t+=s&&s.escape?1:0,r--;return t>0&&t%2===1}function n(e,n){var t=e.replace(/[^0]/g,"").length,r=n.replace(/[^\d]/g,"").length;return r-t}function t(e,n,t,r){return r&&"function"==typeof r.transform&&(n=r.transform(n)),t.reverse?n+e:e+n}function r(e,n,t){var s=e.charAt(n),i=a[s];return""===s?!1:i&&!i.escape?!0:r(e,n+t,t)}function s(e,n,t){var r=e.split("");return r.splice(t>=0?t:0,0,n),r.join("")}function i(e,n){this.options=n||{},this.options={reverse:this.options.reverse||!1,usedefaults:this.options.usedefaults||this.options.reverse},this.pattern=e}var a={0:{pattern:/\d/,_default:"0"},9:{pattern:/\d/,optional:!0},"#":{pattern:/\d/,optional:!0,recursive:!0},S:{pattern:/[a-zA-Z]/},U:{pattern:/[a-zA-Z]/,transform:function(e){return e.toLocaleUpperCase()}},L:{pattern:/[a-zA-Z]/,transform:function(e){return e.toLocaleLowerCase()}},$:{escape:!0}};return i.prototype.process=function(i){function o(e){if(!w&&r(p,k,m.inc))return!0;if(w||(w=v.length>0),w){var n=v.shift();if(v.push(n),e.reverse&&c>=0)return k++,p=s(p,n,k),!0;if(!e.reverse&&c=0}if(!i)return"";i+="";for(var p=this.pattern,u=!0,f="",c=this.options.reverse?i.length-1:0,l=n(p,i),h=!1,v=[],w=!1,m={start:this.options.reverse?p.length-1:0,end:this.options.reverse?-1:p.length,inc:this.options.reverse?-1:1},k=m.start;o(this.options);k+=m.inc){var d=p.charAt(k),g=i.charAt(c),y=a[d];if(!w||g){if(this.options.reverse&&e(p,k)){f=t(f,d,this.options,y),k+=m.inc;continue}if(!this.options.reverse&&h){f=t(f,d,this.options,y),h=!1;continue}if(!this.options.reverse&&y&&y.escape){h=!0;continue}}if(!w&&y&&y.recursive)v.push(d);else{if(w&&!g){y&&y.recursive||(f=t(f,d,this.options,y));continue}if(v.length>0&&y&&!y.recursive){u=!1;continue}if(!w&&v.length>0&&!g)continue}if(y)if(y.optional){if(y.pattern.test(g)&&l)f=t(f,g,this.options,y),c+=m.inc,l--;else if(v.length>0&&g){u=!1;break}}else if(y.pattern.test(g))f=t(f,g,this.options,y),c+=m.inc;else{if(g||!y._default||!this.options.usedefaults){u=!1;break}f=t(f,y._default,this.options,y)}else f=t(f,d,this.options,y),!w&&v.length&&v.push(d)}return{result:f,valid:u}},i.prototype.apply=function(e){return this.process(e).result},i.prototype.validate=function(e){return this.process(e).valid},i.process=function(e,n,t){return new i(n,t).process(e)},i.apply=function(e,n,t){return new i(n,t).apply(e)},i.validate=function(e,n,t){return new i(n,t).validate(e)},i}),function(e,n){"function"==typeof define&&define.amd?define(["string-mask"],n):"object"==typeof exports?module.exports=n(require("string-mask")):e.BrM=n(e.StringMask)}(this,function(e){if(!e)throw new Error("StringMask not found");var n=function(n){var t=new e("00000-000");if(!n)return n;var r=t.process(n);return r.result},t=function(n){if(!n)return n;var t=new e("00.000.000/0000-00"),r=t.apply(n);return r},r=function(n){var t=new e("000.000.000-00");if(!n)return n;var r=t.apply(n);return r},s=function(n,t,r,s){t=!t&&0!==t||0>t?2:t,r=r||".",s=s||"";var i=t>0?r+new Array(t+1).join("0"):"",a="#"+s+"##0"+i;n=parseFloat(n),n||(n=0);var o=!1;0>n&&(n=-1*n,o=!0);var p=new e(a,{reverse:!0}),u=p.apply(n.toFixed(t).replace(/[^\d]+/g,""));return o?"("+u+")":u},i=function(n,t){function r(e){return e?e.replace(/[^0-9]/g,""):e}function s(e,n){if(!e||!i[e])return void 0;var t=e.toUpperCase();if("SP"===t&&/^P/i.test(n))return i.SP[1].mask;for(var s=i[e],a=0;s[a].chars&&s[a].chars=0&&s&&s.escape;)s=a[e.charAt(r)],t+=s&&s.escape?1:0,r--;return t>0&&t%2===1}function n(e,n){var t=e.replace(/[^0]/g,"").length,r=n.replace(/[^\d]/g,"").length;return r-t}function t(e,n,t,r){return r&&"function"==typeof r.transform&&(n=r.transform(n)),t.reverse?n+e:e+n}function r(e,n,t){var s=e.charAt(n),i=a[s];return""===s?!1:i&&!i.escape?!0:r(e,n+t,t)}function s(e,n,t){var r=e.split("");return r.splice(t>=0?t:0,0,n),r.join("")}function i(e,n){this.options=n||{},this.options={reverse:this.options.reverse||!1,usedefaults:this.options.usedefaults||this.options.reverse},this.pattern=e}var a={0:{pattern:/\d/,_default:"0"},9:{pattern:/\d/,optional:!0},"#":{pattern:/\d/,optional:!0,recursive:!0},S:{pattern:/[a-zA-Z]/},U:{pattern:/[a-zA-Z]/,transform:function(e){return e.toLocaleUpperCase()}},L:{pattern:/[a-zA-Z]/,transform:function(e){return e.toLocaleLowerCase()}},$:{escape:!0}};return i.prototype.process=function(i){function o(e){if(!w&&r(p,k,m.inc))return!0;if(w||(w=v.length>0),w){var n=v.shift();if(v.push(n),e.reverse&&c>=0)return k++,p=s(p,n,k),!0;if(!e.reverse&&c=0}if(!i)return"";i+="";for(var p=this.pattern,u=!0,f="",c=this.options.reverse?i.length-1:0,l=n(p,i),h=!1,v=[],w=!1,m={start:this.options.reverse?p.length-1:0,end:this.options.reverse?-1:p.length,inc:this.options.reverse?-1:1},k=m.start;o(this.options);k+=m.inc){var d=p.charAt(k),g=i.charAt(c),y=a[d];if(!w||g){if(this.options.reverse&&e(p,k)){f=t(f,d,this.options,y),k+=m.inc;continue}if(!this.options.reverse&&h){f=t(f,d,this.options,y),h=!1;continue}if(!this.options.reverse&&y&&y.escape){h=!0;continue}}if(!w&&y&&y.recursive)v.push(d);else{if(w&&!g){y&&y.recursive||(f=t(f,d,this.options,y));continue}if(v.length>0&&y&&!y.recursive){u=!1;continue}if(!w&&v.length>0&&!g)continue}if(y)if(y.optional){if(y.pattern.test(g)&&l)f=t(f,g,this.options,y),c+=m.inc,l--;else if(v.length>0&&g){u=!1;break}}else if(y.pattern.test(g))f=t(f,g,this.options,y),c+=m.inc;else{if(g||!y._default||!this.options.usedefaults){u=!1;break}f=t(f,y._default,this.options,y)}else f=t(f,d,this.options,y),!w&&v.length&&v.push(d)}return{result:f,valid:u}},i.prototype.apply=function(e){return this.process(e).result},i.prototype.validate=function(e){return this.process(e).valid},i.process=function(e,n,t){return new i(n,t).process(e)},i.apply=function(e,n,t){return new i(n,t).apply(e)},i.validate=function(e,n,t){return new i(n,t).validate(e)},i}),function(e,n){"function"==typeof define&&define.amd?define(["string-mask"],n):"object"==typeof exports?module.exports=n(require("string-mask")):e.BrM=n(e.StringMask)}(this,function(e){if(!e)throw new Error("StringMask not found");var n=function(n){var t=new e("00000-000");if(!n)return n;var r=t.process(n);return r.result},t=function(n){if(!n)return n;var t=new e("00.000.000/0000-00"),r=t.apply(n);return r},r=function(n){var t=new e("000.000.000-00");if(!n)return n;var r=t.apply(n);return r},s=function(n,t,r,s){t=!t&&0!==t||0>t?2:t,r=r||".",s=s||"";var i=t>0?r+new Array(t+1).join("0"):"",a="#"+s+"##0"+i;n=parseFloat(n),n||(n=0);var o=!1;0>n&&(n=-1*n,o=!0);var p=new e(a,{reverse:!0}),u=p.apply(n.toFixed(t).replace(/[^\d]+/g,""));return o?"("+u+")":u},i=function(n,t){function r(e){return e?e.replace(/[^0-9]/g,""):e}function s(e,n){if(!e||!i[e])return void 0;var t=e.toUpperCase();if("SP"===t&&/^P/i.test(n))return i.SP[1].mask;for(var s=i[e],a=0;s[a].chars&&s[a].charsr?2:r,a=a||".",s=s||"";var t=r>0?a+new Array(r+1).join("0"):"",w="#"+s+"##0"+t;n=parseFloat(n),n||(n=0);var i=!1;0>n&&(n=-1*n,i=!0);var k=new e(w,{reverse:!0}),m=k.apply(n.toFixed(r).replace(/[^\d]+/g,""));return i?"("+m+")":m},t=function(n,r){function a(e){return e?e.replace(/[^0-9]/g,""):e}function s(e,n){if(!e||!t[e])return void 0;var r=e.toUpperCase();if("SP"===r&&/^P/i.test(n))return t.SP[1].mask;for(var s=t[e],w=0;s[w].chars&&s[w].charsr?2:r,a=a||".",s=s||"";var t=r>0?a+new Array(r+1).join("0"):"",w="#"+s+"##0"+t;n=parseFloat(n),n||(n=0);var i=!1;0>n&&(n=-1*n,i=!0);var k=new e(w,{reverse:!0}),m=k.apply(n.toFixed(r).replace(/[^\d]+/g,""));return i?"("+m+")":m},t=function(n,r){function a(e){return e?e.replace(/[^0-9]/g,""):e}function s(e,n){if(!e||!t[e])return void 0;var r=e.toUpperCase();if("SP"===r&&/^P/i.test(n))return t.SP[1].mask;for(var s=t[e],w=0;s[w].chars&&s[w].chars