UNPKG

silvie

Version:

Typescript Back-end Framework

25 lines (24 loc) 808 B
"use strict"; 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);