2 lines
745 B
JavaScript
2 lines
745 B
JavaScript
var t=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X|x)$/,r=[1,0,10,9,8,7,6,5,4,3,2],e=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1],a=function(a){if("string"!=typeof a)return!1;var n=a.trim();return 18===n.length&&t.test(n)&&function(t){var a=t.split(""),n=0;"x"===a[17].toLowerCase()&&(a[17]=10);for(var s=0;s<17;s++)n+=e[s]*a[s];var o=n%11;return+a[17]===r[o]}(n)&&function(t){var r=t.substring(6,10),e=t.substring(10,12),a=t.substring(12,14),n=new Date(r,parseFloat(e)-1,parseFloat(a)),s=(new Date).getFullYear()-parseFloat(r);return n.getFullYear()===parseFloat(r)&&n.getMonth()===parseFloat(e)-1&&n.getDate()===parseFloat(a)&&s>=0&&s<=150}(n)};export{a as default};
|