UNPKG

cn-idno-validator

Version:
2 lines (1 loc) 1.26 kB
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).CnIdNoValidator={})}(this,(function(e){"use strict";e.isValid=function(e){if(!function(e){return!(!e||"string"!=typeof e)&&18===e.length}(e))return!1;var r=function(e){var r=e.slice(0,17),t=e.slice(0,6),n=e.slice(6,14),i=r.slice(-3);return{masterNumber:r,addrNumber:t,birthNumber:n,orderNumber:i,checkNumber:e.slice(-1).toUpperCase()}}(e),t=r.birthNumber,n=r.addrNumber,i=r.masterNumber,u=r.checkNumber;return!!function(e){if(8!==e.length)return!1;if(parseInt(e.slice(0,4),10)<1850)return!1;var r=parseInt(e.slice(4,6),10),t=parseInt(e.slice(-2),10);return!(r>12||0===r||t>31||0===t)}(t)&&(!!function(e){var r=e.slice(0,2);return["11","12","13","14","15","21","22","23","31","32","33","34","35","36","37","41","42","43","44","45","46","50","51","52","53","54","61","62","63","64","65","71","81","82"].includes(r)}(n)&&function(e){var r=e.split("");return["1","0","X","9","8","7","6","5","4","3","2"][[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2].reduce((function(e,t,n){return e+parseInt(r[n],10)*t}),0)%11]}(i)===u)},Object.defineProperty(e,"__esModule",{value:!0})}));