From aa907aaffa7af1d8f341deeb819fb7313fb53d9f Mon Sep 17 00:00:00 2001 From: "Raphael D. Pinheiro" Date: Sun, 24 Jan 2016 23:23:32 -0200 Subject: [PATCH] Added RG validation #7 --- README.md | 6 +++++- gulpfile.js | 3 ++- releases/br-validations.js | 21 +++++++++++++++++++-- releases/br-validations.min.js | 2 +- src/rg.js | 16 ++++++++++++++++ test/rg.test.js | 21 +++++++++++++++++++++ 6 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 src/rg.js create mode 100644 test/rg.test.js diff --git a/README.md b/README.md index e5102d9..444af5b 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,11 @@ See: [Conferência de Inscrições Estaduais](http://www.sintegra.gov.br/insc_es ### RG ### -__Not implemented yet__ +```javascript + var Brv = require('./br-validations'); + var rg = '418757896'; + var isValid = Brv.rg.validate(rg); +``` ### PIS/PASEP ### diff --git a/gulpfile.js b/gulpfile.js index 3dc2a7e..f9db636 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -48,7 +48,8 @@ gulp.task('build', function(done) { ' ie: IE,', ' cpf: CPF,', ' cnpj: CNPJ,', - ' pis: PIS', + ' pis: PIS,', + ' rg: RG', ' };', '}));'].join('\n'); diff --git a/releases/br-validations.js b/releases/br-validations.js index 5c5315d..012444c 100644 --- a/releases/br-validations.js +++ b/releases/br-validations.js @@ -1,7 +1,7 @@ /** * br-validations * A library of validations applicable to several Brazilian data like I.E., CNPJ, CPF and others - * @version v0.2.4 + * @version v0.3.0 * @link http://github.com/the-darc/br-validations * @license MIT */ @@ -662,10 +662,27 @@ PIS.validate = function(pis) { return Number(pisd) === calculateDigit(pisi); }; +var RG = {}; + +RG.validate = function(rg){ + rg = rg.split(''); + var vd; + var multiplier = 2; + var total = 0; + + for (var i = 0; i < rg.length - 1; i++) { + total += rg[i] * multiplier; + multiplier += 1; + } + + vd = 11 - total % 11; + return (parseInt(rg[rg.length - 1]) === vd); +}; return { ie: IE, cpf: CPF, cnpj: CNPJ, - pis: PIS + pis: PIS, + rg: RG }; })); \ No newline at end of file diff --git a/releases/br-validations.min.js b/releases/br-validations.min.js index 6d67c60..50101b7 100644 --- a/releases/br-validations.min.js +++ b/releases/br-validations.min.js @@ -1 +1 @@ -!function(s,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():s.BrV=t()}(this,function(){function s(s,t){var r=t.algorithmSteps,e=m.handleStr[r[0]](s),o=m.sum[r[1]](e,t.pesos),n=m.rest[r[2]](o),u=parseInt(e[t.dvpos]),a=m.expectedDV[r[3]](n,e);return u===a}function t(t,r){if(r.match&&!r.match.test(t))return!1;for(var e=0;ee;e++)o+=s[e]*t[e+1];if(o=11-o%11,o=o>=10?0:o,parseInt(s[12])!==o)return!1;for(e=0,o=0;12>=e;e++)o+=s[e]*t[e];return o=11-o%11,o=o>=10?0:o,parseInt(s[13])!==o?!1:!0};var e={};e.validate=function(s){function t(t){for(var r=0,e=t-9,o=0;9>o;o++)r+=parseInt(s.charAt(o+e))*(o+1);return r%11%10===parseInt(s.charAt(t))}s=s.replace(/[^\d]+/g,"");var r=/^(0{11}|1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11})$/;return!s||11!==s.length||r.test(s)?!1:t(9)&&t(10)};var o=function(s){return this instanceof o?(this.rules=n[s]||[],this.rule,o.prototype._defineRule=function(s){this.rule=void 0;for(var t=0;t="030000010"&&"030170009">=e?r+5:e>="030170010"&&"030190229">=e?r+9:r}},rest:{mod11:function(s){return s%11},mod10:function(s){return s%10},mod9:function(s){return s%9}},expectedDV:{minusRestOf11:function(s){return 2>s?0:11-s},minusRestOf11v2:function(s){return 2>s?11-s-10:11-s},minusRestOf10:function(s){return 1>s?0:10-s},mod10:function(s){return s%10},goSpec:function(s,t){var r=t.join("");return 1===s?r>="101031050"&&"101199979">=r?1:0:0===s?0:11-s},apSpec:function(s,t){var r=t.join("");return 0===s?r>="030170010"&&"030190229">=r?1:0:1===s?0:11-s},voidFn:function(s){return s}}};n.PE=[{chars:9,dvs:[{dvpos:7,pesos:[8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]},{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}},{chars:14,pesos:[[1,2,3,4,5,9,8,7,6,5,4,3,2]],dvs:[{dvpos:13,pesos:[5,4,3,2,1,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11v2"]}],validate:function(s){return t(s,this)}}],n.RS=[{chars:10,dvs:[{dvpos:9,pesos:[2,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.AC=[{chars:13,match:/^01/,dvs:[{dvpos:11,pesos:[4,3,2,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]},{dvpos:12,pesos:[5,4,3,2,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.MG=[{chars:13,dvs:[{dvpos:12,pesos:[1,2,1,2,1,2,1,2,1,2,1,2],algorithmSteps:["mgSpec","individualSum","mod10","minusRestOf10"]},{dvpos:12,pesos:[3,2,11,10,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.SP=[{chars:12,match:/^[0-9]/,dvs:[{dvpos:8,pesos:[1,3,4,5,6,7,8,10],algorithmSteps:["onlyNumbers","normalSum","mod11","mod10"]},{dvpos:11,pesos:[3,2,10,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","mod10"]}],validate:function(s){return t(s,this)}},{chars:12,match:/^P/i,dvs:[{dvpos:8,pesos:[1,3,4,5,6,7,8,10],algorithmSteps:["onlyNumbers","normalSum","mod11","mod10"]}],validate:function(s){return t(s,this)}}],n.DF=[{chars:13,dvs:[{dvpos:11,pesos:[4,3,2,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]},{dvpos:12,pesos:[5,4,3,2,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.ES=[{chars:9,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.BA=[{chars:8,match:/^[0123458]/,dvs:[{dvpos:7,pesos:[7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod10","minusRestOf10"]},{dvpos:6,pesos:[8,7,6,5,4,3,0,2],algorithmSteps:["onlyNumbers","normalSum","mod10","minusRestOf10"]}],validate:function(s){return t(s,this)}},{chars:8,match:/^[679]/,dvs:[{dvpos:7,pesos:[7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]},{dvpos:6,pesos:[8,7,6,5,4,3,0,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}},{chars:9,match:/^[0-9][0123458]/,dvs:[{dvpos:8,pesos:[8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod10","minusRestOf10"]},{dvpos:7,pesos:[9,8,7,6,5,4,3,0,2],algorithmSteps:["onlyNumbers","normalSum","mod10","minusRestOf10"]}],validate:function(s){return t(s,this)}},{chars:9,match:/^[0-9][679]/,dvs:[{dvpos:8,pesos:[8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]},{dvpos:7,pesos:[9,8,7,6,5,4,3,0,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.AM=[{chars:9,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.RN=[{chars:9,match:/^20/,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}},{chars:10,match:/^20/,dvs:[{dvpos:8,pesos:[10,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.RO=[{chars:14,dvs:[{dvpos:13,pesos:[6,5,4,3,2,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.PR=[{chars:10,dvs:[{dvpos:8,pesos:[3,2,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]},{dvpos:9,pesos:[4,3,2,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.SC=[{chars:9,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.RJ=[{chars:8,dvs:[{dvpos:7,pesos:[2,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.PA=[{chars:9,match:/^15/,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.SE=[{chars:9,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.PB=[{chars:9,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.CE=[{chars:9,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.PI=[{chars:9,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.MA=[{chars:9,match:/^12/,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.MT=[{chars:11,dvs:[{dvpos:10,pesos:[3,2,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.MS=[{chars:9,match:/^28/,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.TO=[{chars:11,match:/^[0-9]{2}((0[123])|(99))/,dvs:[{dvpos:10,pesos:[9,8,0,0,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.AL=[{chars:9,match:/^24[03578]/,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.RR=[{chars:9,match:/^24/,dvs:[{dvpos:8,pesos:[1,2,3,4,5,6,7,8],algorithmSteps:["onlyNumbers","normalSum","mod9","voidFn"]}],validate:function(s){return t(s,this)}}],n.GO=[{chars:9,match:/^1[015]/,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","goSpec"]}],validate:function(s){return t(s,this)}}],n.AP=[{chars:9,match:/^03/,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","apSpec","mod11","apSpec"]}],validate:function(s){return t(s,this)}}];var u={};return u.validate=function(s){function t(s){for(var t=[3,2,9,8,7,6,5,4,3,2],r=0,e=0;9>=e;e++)r+=parseInt(s.charAt(e))*t[e];var o=11-r%11;return 10===o||11===o?0:o}s=s.replace(/[^\d]+/g,"");var r=/^(0{11}|1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11})$/;if(!s||11!==s.length||r.test(s))return!1;var e=s.substring(0,10),o=s.substring(10);return Number(o)===t(e)},{ie:o,cpf:e,cnpj:r,pis:u}}); \ No newline at end of file +!function(s,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():s.BrV=t()}(this,function(){function s(s,t){var r=t.algorithmSteps,e=m.handleStr[r[0]](s),o=m.sum[r[1]](e,t.pesos),n=m.rest[r[2]](o),u=parseInt(e[t.dvpos]),a=m.expectedDV[r[3]](n,e);return u===a}function t(t,r){if(r.match&&!r.match.test(t))return!1;for(var e=0;ee;e++)o+=s[e]*t[e+1];if(o=11-o%11,o=o>=10?0:o,parseInt(s[12])!==o)return!1;for(e=0,o=0;12>=e;e++)o+=s[e]*t[e];return o=11-o%11,o=o>=10?0:o,parseInt(s[13])!==o?!1:!0};var e={};e.validate=function(s){function t(t){for(var r=0,e=t-9,o=0;9>o;o++)r+=parseInt(s.charAt(o+e))*(o+1);return r%11%10===parseInt(s.charAt(t))}s=s.replace(/[^\d]+/g,"");var r=/^(0{11}|1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11})$/;return!s||11!==s.length||r.test(s)?!1:t(9)&&t(10)};var o=function(s){return this instanceof o?(this.rules=n[s]||[],this.rule,o.prototype._defineRule=function(s){this.rule=void 0;for(var t=0;t="030000010"&&"030170009">=e?r+5:e>="030170010"&&"030190229">=e?r+9:r}},rest:{mod11:function(s){return s%11},mod10:function(s){return s%10},mod9:function(s){return s%9}},expectedDV:{minusRestOf11:function(s){return 2>s?0:11-s},minusRestOf11v2:function(s){return 2>s?11-s-10:11-s},minusRestOf10:function(s){return 1>s?0:10-s},mod10:function(s){return s%10},goSpec:function(s,t){var r=t.join("");return 1===s?r>="101031050"&&"101199979">=r?1:0:0===s?0:11-s},apSpec:function(s,t){var r=t.join("");return 0===s?r>="030170010"&&"030190229">=r?1:0:1===s?0:11-s},voidFn:function(s){return s}}};n.PE=[{chars:9,dvs:[{dvpos:7,pesos:[8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]},{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}},{chars:14,pesos:[[1,2,3,4,5,9,8,7,6,5,4,3,2]],dvs:[{dvpos:13,pesos:[5,4,3,2,1,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11v2"]}],validate:function(s){return t(s,this)}}],n.RS=[{chars:10,dvs:[{dvpos:9,pesos:[2,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.AC=[{chars:13,match:/^01/,dvs:[{dvpos:11,pesos:[4,3,2,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]},{dvpos:12,pesos:[5,4,3,2,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.MG=[{chars:13,dvs:[{dvpos:12,pesos:[1,2,1,2,1,2,1,2,1,2,1,2],algorithmSteps:["mgSpec","individualSum","mod10","minusRestOf10"]},{dvpos:12,pesos:[3,2,11,10,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.SP=[{chars:12,match:/^[0-9]/,dvs:[{dvpos:8,pesos:[1,3,4,5,6,7,8,10],algorithmSteps:["onlyNumbers","normalSum","mod11","mod10"]},{dvpos:11,pesos:[3,2,10,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","mod10"]}],validate:function(s){return t(s,this)}},{chars:12,match:/^P/i,dvs:[{dvpos:8,pesos:[1,3,4,5,6,7,8,10],algorithmSteps:["onlyNumbers","normalSum","mod11","mod10"]}],validate:function(s){return t(s,this)}}],n.DF=[{chars:13,dvs:[{dvpos:11,pesos:[4,3,2,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]},{dvpos:12,pesos:[5,4,3,2,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.ES=[{chars:9,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.BA=[{chars:8,match:/^[0123458]/,dvs:[{dvpos:7,pesos:[7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod10","minusRestOf10"]},{dvpos:6,pesos:[8,7,6,5,4,3,0,2],algorithmSteps:["onlyNumbers","normalSum","mod10","minusRestOf10"]}],validate:function(s){return t(s,this)}},{chars:8,match:/^[679]/,dvs:[{dvpos:7,pesos:[7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]},{dvpos:6,pesos:[8,7,6,5,4,3,0,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}},{chars:9,match:/^[0-9][0123458]/,dvs:[{dvpos:8,pesos:[8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod10","minusRestOf10"]},{dvpos:7,pesos:[9,8,7,6,5,4,3,0,2],algorithmSteps:["onlyNumbers","normalSum","mod10","minusRestOf10"]}],validate:function(s){return t(s,this)}},{chars:9,match:/^[0-9][679]/,dvs:[{dvpos:8,pesos:[8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]},{dvpos:7,pesos:[9,8,7,6,5,4,3,0,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.AM=[{chars:9,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.RN=[{chars:9,match:/^20/,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}},{chars:10,match:/^20/,dvs:[{dvpos:8,pesos:[10,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.RO=[{chars:14,dvs:[{dvpos:13,pesos:[6,5,4,3,2,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.PR=[{chars:10,dvs:[{dvpos:8,pesos:[3,2,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]},{dvpos:9,pesos:[4,3,2,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.SC=[{chars:9,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.RJ=[{chars:8,dvs:[{dvpos:7,pesos:[2,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.PA=[{chars:9,match:/^15/,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.SE=[{chars:9,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.PB=[{chars:9,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.CE=[{chars:9,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.PI=[{chars:9,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.MA=[{chars:9,match:/^12/,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.MT=[{chars:11,dvs:[{dvpos:10,pesos:[3,2,9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.MS=[{chars:9,match:/^28/,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.TO=[{chars:11,match:/^[0-9]{2}((0[123])|(99))/,dvs:[{dvpos:10,pesos:[9,8,0,0,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.AL=[{chars:9,match:/^24[03578]/,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","minusRestOf11"]}],validate:function(s){return t(s,this)}}],n.RR=[{chars:9,match:/^24/,dvs:[{dvpos:8,pesos:[1,2,3,4,5,6,7,8],algorithmSteps:["onlyNumbers","normalSum","mod9","voidFn"]}],validate:function(s){return t(s,this)}}],n.GO=[{chars:9,match:/^1[015]/,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","normalSum","mod11","goSpec"]}],validate:function(s){return t(s,this)}}],n.AP=[{chars:9,match:/^03/,dvs:[{dvpos:8,pesos:[9,8,7,6,5,4,3,2],algorithmSteps:["onlyNumbers","apSpec","mod11","apSpec"]}],validate:function(s){return t(s,this)}}];var u={};u.validate=function(s){function t(s){for(var t=[3,2,9,8,7,6,5,4,3,2],r=0,e=0;9>=e;e++)r+=parseInt(s.charAt(e))*t[e];var o=11-r%11;return 10===o||11===o?0:o}s=s.replace(/[^\d]+/g,"");var r=/^(0{11}|1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11})$/;if(!s||11!==s.length||r.test(s))return!1;var e=s.substring(0,10),o=s.substring(10);return Number(o)===t(e)};var a={};return a.validate=function(s){s=s.split("");for(var t,r=2,e=0,o=0;o