silvie
Version:
Typescript Back-end Framework
25 lines (24 loc) • 808 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _rule = require("../rule");
var _validator = require("validator");
var _dec, _class;
let IdentityCardRule = exports.default = (_dec = (0, _rule.rule)('identityCard'), _dec(_class = class IdentityCardRule {
validate(validator, name, value, locale) {
if (locale === 'fa_IR') {
if (!/^\d{10}$/.test(value)) {
return false;
}
const code = value.split('').reverse().join('');
let sum = 0;
for (let i = 1; i < code.length; i++) sum += parseInt(code[i], 10) * (i + 1);
const r = sum % 11;
const c = parseInt(code[0], 10);
return r < 2 ? c === r : c === 11 - r;
}
return (0, _validator.isIdentityCard)(value, locale);
}
}) || _class);