Initial commit
This commit is contained in:
commit
d7af9332c1
1674 changed files with 119641 additions and 0 deletions
127
node_modules/validator/lib/isIdentityCard.js
generated
vendored
Normal file
127
node_modules/validator/lib/isIdentityCard.js
generated
vendored
Normal file
|
@ -0,0 +1,127 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = isIdentityCard;
|
||||
|
||||
var _assertString = _interopRequireDefault(require("./util/assertString"));
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var validators = {
|
||||
ES: function ES(str) {
|
||||
(0, _assertString.default)(str);
|
||||
var DNI = /^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/;
|
||||
var charsValue = {
|
||||
X: 0,
|
||||
Y: 1,
|
||||
Z: 2
|
||||
};
|
||||
var controlDigits = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E']; // sanitize user input
|
||||
|
||||
var sanitized = str.trim().toUpperCase(); // validate the data structure
|
||||
|
||||
if (!DNI.test(sanitized)) {
|
||||
return false;
|
||||
} // validate the control digit
|
||||
|
||||
|
||||
var number = sanitized.slice(0, -1).replace(/[X,Y,Z]/g, function (char) {
|
||||
return charsValue[char];
|
||||
});
|
||||
return sanitized.endsWith(controlDigits[number % 23]);
|
||||
},
|
||||
'he-IL': function heIL(str) {
|
||||
var DNI = /^\d{9}$/; // sanitize user input
|
||||
|
||||
var sanitized = str.trim(); // validate the data structure
|
||||
|
||||
if (!DNI.test(sanitized)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var id = sanitized;
|
||||
var sum = 0,
|
||||
incNum;
|
||||
|
||||
for (var i = 0; i < id.length; i++) {
|
||||
incNum = Number(id[i]) * (i % 2 + 1); // Multiply number by 1 or 2
|
||||
|
||||
sum += incNum > 9 ? incNum - 9 : incNum; // Sum the digits up and add to total
|
||||
}
|
||||
|
||||
return sum % 10 === 0;
|
||||
},
|
||||
'zh-TW': function zhTW(str) {
|
||||
var ALPHABET_CODES = {
|
||||
A: 10,
|
||||
B: 11,
|
||||
C: 12,
|
||||
D: 13,
|
||||
E: 14,
|
||||
F: 15,
|
||||
G: 16,
|
||||
H: 17,
|
||||
I: 34,
|
||||
J: 18,
|
||||
K: 19,
|
||||
L: 20,
|
||||
M: 21,
|
||||
N: 22,
|
||||
O: 35,
|
||||
P: 23,
|
||||
Q: 24,
|
||||
R: 25,
|
||||
S: 26,
|
||||
T: 27,
|
||||
U: 28,
|
||||
V: 29,
|
||||
W: 32,
|
||||
X: 30,
|
||||
Y: 31,
|
||||
Z: 33
|
||||
};
|
||||
var sanitized = str.trim().toUpperCase();
|
||||
if (!/^[A-Z][0-9]{9}$/.test(sanitized)) return false;
|
||||
return Array.from(sanitized).reduce(function (sum, number, index) {
|
||||
if (index === 0) {
|
||||
var code = ALPHABET_CODES[number];
|
||||
return code % 10 * 9 + Math.floor(code / 10);
|
||||
}
|
||||
|
||||
if (index === 9) {
|
||||
return (10 - sum % 10 - Number(number)) % 10 === 0;
|
||||
}
|
||||
|
||||
return sum + Number(number) * (9 - index);
|
||||
}, 0);
|
||||
}
|
||||
};
|
||||
|
||||
function isIdentityCard(str, locale) {
|
||||
(0, _assertString.default)(str);
|
||||
|
||||
if (locale in validators) {
|
||||
return validators[locale](str);
|
||||
} else if (locale === 'any') {
|
||||
for (var key in validators) {
|
||||
// https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes
|
||||
// istanbul ignore else
|
||||
if (validators.hasOwnProperty(key)) {
|
||||
var validator = validators[key];
|
||||
|
||||
if (validator(str)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
throw new Error("Invalid locale '".concat(locale, "'"));
|
||||
}
|
||||
|
||||
module.exports = exports.default;
|
||||
module.exports.default = exports.default;
|
Loading…
Add table
Add a link
Reference in a new issue