/
var
/
www
/
greso.tech
/
server
/
nsm
/
node_modules
/
validator
/
lib
/
/var/www/greso.tech/server/nsm/node_modules/validator/lib
mkdir
upload
Name
Size
Mode
Actions
util/
-
0755
rm
alpha.js
7006
0644
edit
dl
rm
blacklist.js
498
0644
edit
dl
rm
contains.js
936
0644
edit
dl
rm
equals.js
458
0644
edit
dl
rm
escape.js
619
0644
edit
dl
rm
isAfter.js
797
0644
edit
dl
rm
isAlpha.js
1217
0644
edit
dl
rm
isAlphanumeric.js
1252
0644
edit
dl
rm
isAscii.js
551
0644
edit
dl
rm
isBase32.js
863
0644
edit
dl
rm
isBase58.js
615
0644
edit
dl
rm
isBase64.js
1005
0644
edit
dl
rm
isBefore.js
735
0644
edit
dl
rm
isBIC.js
884
0644
edit
dl
rm
isBoolean.js
799
0644
edit
dl
rm
isBtcAddress.js
567
0644
edit
dl
rm
isByteLength.js
1219
0644
edit
dl
rm
isCreditCard.js
1910
0644
edit
dl
rm
isCurrency.js
3400
0755
edit
dl
rm
isDataURI.js
1303
0644
edit
dl
rm
isDate.js
4965
0644
edit
dl
rm
isDecimal.js
1255
0644
edit
dl
rm
isDivisibleBy.js
561
0644
edit
dl
rm
isEAN.js
2461
0644
edit
dl
rm
isEmail.js
6332
0644
edit
dl
rm
isEmpty.js
700
0644
edit
dl
rm
isEthereumAddress.js
497
0644
edit
dl
rm
isFloat.js
1081
0644
edit
dl
rm
isFQDN.js
2136
0644
edit
dl
rm
isFullWidth.js
524
0644
edit
dl
rm
isHalfWidth.js
523
0644
edit
dl
rm
isHash.js
731
0644
edit
dl
rm
isHexadecimal.js
506
0644
edit
dl
rm
isHexColor.js
528
0644
edit
dl
rm
isHSL.js
1293
0644
edit
dl
rm
isIBAN.js
5476
0644
edit
dl
rm
isIdentityCard.js
12519
0644
edit
dl
rm
isIMEI.js
1269
0644
edit
dl
rm
isIn.js
1517
0644
edit
dl
rm
isInt.js
1169
0644
edit
dl
rm
isIP.js
3014
0644
edit
dl
rm
isIPRange.js
1424
0644
edit
dl
rm
isISBN.js
1754
0644
edit
dl
rm
isISIN.js
1886
0644
edit
dl
rm
isISO4217.js
1868
0644
edit
dl
rm
isISO6391.js
1596
0644
edit
dl
rm
isISO8601.js
2495
0644
edit
dl
rm
isISO31661Alpha2.js
2153
0644
edit
dl
rm
isISO31661Alpha3.js
2356
0644
edit
dl
rm
isISRC.js
546
0644
edit
dl
rm
isISSN.js
1018
0644
edit
dl
rm
isJSON.js
1272
0644
edit
dl
rm
isJWT.js
734
0644
edit
dl
rm
isLatLong.js
1264
0644
edit
dl
rm
isLength.js
1379
0644
edit
dl
rm
isLicensePlate.js
4894
0644
edit
dl
rm
isLocale.js
625
0644
edit
dl
rm
isLowercase.js
463
0644
edit
dl
rm
isLuhnNumber.js
944
0644
edit
dl
rm
isLuhnValid.js
942
0644
edit
dl
rm
isMACAddress.js
1851
0644
edit
dl
rm
isMagnetURI.js
721
0644
edit
dl
rm
isMD5.js
468
0644
edit
dl
rm
isMimeType.js
2241
0644
edit
dl
rm
isMobilePhone.js
8978
0644
edit
dl
rm
isMongoId.js
561
0644
edit
dl
rm
isMultibyte.js
565
0644
edit
dl
rm
isNumeric.js
719
0644
edit
dl
rm
isOctal.js
476
0644
edit
dl
rm
isPassportNumber.js
3733
0644
edit
dl
rm
isPort.js
432
0644
edit
dl
rm
isPostalCode.js
2811
0644
edit
dl
rm
isRFC3339.js
1368
0644
edit
dl
rm
isRgbColor.js
1158
0644
edit
dl
rm
isSemVer.js
949
0644
edit
dl
rm
isSlug.js
522
0644
edit
dl
rm
isStrongPassword.js
3198
0644
edit
dl
rm
isSurrogatePair.js
524
0644
edit
dl
rm
isTaxID.js
42490
0644
edit
dl
rm
isTime.js
925
0644
edit
dl
rm
isUppercase.js
463
0644
edit
dl
rm
isURL.js
6270
0644
edit
dl
rm
isUUID.js
1012
0644
edit
dl
rm
isVariableWidth.js
606
0644
edit
dl
rm
isVAT.js
7677
0644
edit
dl
rm
isWhitelisted.js
571
0644
edit
dl
rm
ltrim.js
668
0644
edit
dl
rm
matches.js
593
0644
edit
dl
rm
normalizeEmail.js
6666
0644
edit
dl
rm
rtrim.js
935
0644
edit
dl
rm
stripLow.js
642
0644
edit
dl
rm
toBoolean.js
561
0644
edit
dl
rm
toDate.js
493
0644
edit
dl
rm
toFloat.js
442
0644
edit
dl
rm
toInt.js
459
0644
edit
dl
rm
trim.js
494
0644
edit
dl
rm
unescape.js
807
0644
edit
dl
rm
whitelist.js
499
0644
edit
dl
rm
Edit:
/var/www/greso.tech/server/nsm/node_modules/validator/lib/isIdentityCard.js
(12519B)
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = isIdentityCard; var _assertString = _interopRequireDefault(require("./util/assertString")); var _isInt = _interopRequireDefault(require("./isInt")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var validators = { PL: function PL(str) { (0, _assertString.default)(str); var weightOfDigits = { 1: 1, 2: 3, 3: 7, 4: 9, 5: 1, 6: 3, 7: 7, 8: 9, 9: 1, 10: 3, 11: 0 }; if (str != null && str.length === 11 && (0, _isInt.default)(str, { allow_leading_zeroes: true })) { var digits = str.split('').slice(0, -1); var sum = digits.reduce(function (acc, digit, index) { return acc + Number(digit) * weightOfDigits[index + 1]; }, 0); var modulo = sum % 10; var lastDigit = Number(str.charAt(str.length - 1)); if (modulo === 0 && lastDigit === 0 || lastDigit === 10 - modulo) { return true; } } return false; }, 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]); }, FI: function FI(str) { // https://dvv.fi/en/personal-identity-code#:~:text=control%20character%20for%20a-,personal,-identity%20code%20calculated (0, _assertString.default)(str); if (str.length !== 11) { return false; } if (!str.match(/^\d{6}[\-A\+]\d{3}[0-9ABCDEFHJKLMNPRSTUVWXY]{1}$/)) { return false; } var checkDigits = '0123456789ABCDEFHJKLMNPRSTUVWXY'; var idAsNumber = parseInt(str.slice(0, 6), 10) * 1000 + parseInt(str.slice(7, 10), 10); var remainder = idAsNumber % 31; var checkDigit = checkDigits[remainder]; return checkDigit === str.slice(10, 11); }, IN: function IN(str) { var DNI = /^[1-9]\d{3}\s?\d{4}\s?\d{4}$/; // multiplication table var d = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]]; // permutation table var p = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]]; // sanitize user input var sanitized = str.trim(); // validate the data structure if (!DNI.test(sanitized)) { return false; } var c = 0; var invertedArray = sanitized.replace(/\s/g, '').split('').map(Number).reverse(); invertedArray.forEach(function (val, i) { c = d[c][p[i % 8][val]]; }); return c === 0; }, IR: function IR(str) { if (!str.match(/^\d{10}$/)) return false; str = "0000".concat(str).slice(str.length - 6); if (parseInt(str.slice(3, 9), 10) === 0) return false; var lastNumber = parseInt(str.slice(9, 10), 10); var sum = 0; for (var i = 0; i < 9; i++) { sum += parseInt(str.slice(i, i + 1), 10) * (10 - i); } sum %= 11; return sum < 2 && lastNumber === sum || sum >= 2 && lastNumber === 11 - sum; }, IT: function IT(str) { if (str.length !== 9) return false; if (str === 'CA00000AA') return false; // https://it.wikipedia.org/wiki/Carta_d%27identit%C3%A0_elettronica_italiana return str.search(/C[A-Z][0-9]{5}[A-Z]{2}/i) > -1; }, NO: function NO(str) { var sanitized = str.trim(); if (isNaN(Number(sanitized))) return false; if (sanitized.length !== 11) return false; if (sanitized === '00000000000') return false; // https://no.wikipedia.org/wiki/F%C3%B8dselsnummer var f = sanitized.split('').map(Number); var k1 = (11 - (3 * f[0] + 7 * f[1] + 6 * f[2] + 1 * f[3] + 8 * f[4] + 9 * f[5] + 4 * f[6] + 5 * f[7] + 2 * f[8]) % 11) % 11; var k2 = (11 - (5 * f[0] + 4 * f[1] + 3 * f[2] + 2 * f[3] + 7 * f[4] + 6 * f[5] + 5 * f[6] + 4 * f[7] + 3 * f[8] + 2 * k1) % 11) % 11; if (k1 !== f[9] || k2 !== f[10]) return false; return true; }, TH: function TH(str) { if (!str.match(/^[1-8]\d{12}$/)) return false; // validate check digit var sum = 0; for (var i = 0; i < 12; i++) { sum += parseInt(str[i], 10) * (13 - i); } return str[12] === ((11 - sum % 11) % 10).toString(); }, LK: function LK(str) { var old_nic = /^[1-9]\d{8}[vx]$/i; var new_nic = /^[1-9]\d{11}$/i; if (str.length === 10 && old_nic.test(str)) return true;else if (str.length === 12 && new_nic.test(str)) return true; return false; }, '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; }, 'ar-LY': function arLY(str) { // Libya National Identity Number NIN is 12 digits, the first digit is either 1 or 2 var NIN = /^(1|2)\d{11}$/; // sanitize user input var sanitized = str.trim(); // validate the data structure if (!NIN.test(sanitized)) { return false; } return true; }, 'ar-TN': function arTN(str) { var DNI = /^\d{8}$/; // sanitize user input var sanitized = str.trim(); // validate the data structure if (!DNI.test(sanitized)) { return false; } return true; }, 'zh-CN': function zhCN(str) { var provincesAndCities = ['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', // 澳门 '91' // 国外 ]; var powers = ['7', '9', '10', '5', '8', '4', '2', '1', '6', '3', '7', '9', '10', '5', '8', '4', '2']; var parityBit = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; var checkAddressCode = function checkAddressCode(addressCode) { return provincesAndCities.includes(addressCode); }; var checkBirthDayCode = function checkBirthDayCode(birDayCode) { var yyyy = parseInt(birDayCode.substring(0, 4), 10); var mm = parseInt(birDayCode.substring(4, 6), 10); var dd = parseInt(birDayCode.substring(6), 10); var xdata = new Date(yyyy, mm - 1, dd); if (xdata > new Date()) { return false; // eslint-disable-next-line max-len } else if (xdata.getFullYear() === yyyy && xdata.getMonth() === mm - 1 && xdata.getDate() === dd) { return true; } return false; }; var getParityBit = function getParityBit(idCardNo) { var id17 = idCardNo.substring(0, 17); var power = 0; for (var i = 0; i < 17; i++) { power += parseInt(id17.charAt(i), 10) * parseInt(powers[i], 10); } var mod = power % 11; return parityBit[mod]; }; var checkParityBit = function checkParityBit(idCardNo) { return getParityBit(idCardNo) === idCardNo.charAt(17).toUpperCase(); }; var check15IdCardNo = function check15IdCardNo(idCardNo) { var check = /^[1-9]\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}$/.test(idCardNo); if (!check) return false; var addressCode = idCardNo.substring(0, 2); check = checkAddressCode(addressCode); if (!check) return false; var birDayCode = "19".concat(idCardNo.substring(6, 12)); check = checkBirthDayCode(birDayCode); if (!check) return false; return true; }; var check18IdCardNo = function check18IdCardNo(idCardNo) { var check = /^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/.test(idCardNo); if (!check) return false; var addressCode = idCardNo.substring(0, 2); check = checkAddressCode(addressCode); if (!check) return false; var birDayCode = idCardNo.substring(6, 14); check = checkBirthDayCode(birDayCode); if (!check) return false; return checkParityBit(idCardNo); }; var checkIdCardNo = function checkIdCardNo(idCardNo) { var check = /^\d{15}|(\d{17}(\d|x|X))$/.test(idCardNo); if (!check) return false; if (idCardNo.length === 15) { return check15IdCardNo(idCardNo); } return check18IdCardNo(idCardNo); }; return checkIdCardNo(str); }, 'zh-HK': function zhHK(str) { // sanitize user input str = str.trim(); // HKID number starts with 1 or 2 letters, followed by 6 digits, // then a checksum contained in square / round brackets or nothing var regexHKID = /^[A-Z]{1,2}[0-9]{6}((\([0-9A]\))|(\[[0-9A]\])|([0-9A]))$/; var regexIsDigit = /^[0-9]$/; // convert the user input to all uppercase and apply regex str = str.toUpperCase(); if (!regexHKID.test(str)) return false; str = str.replace(/\[|\]|\(|\)/g, ''); if (str.length === 8) str = "3".concat(str); var checkSumVal = 0; for (var i = 0; i <= 7; i++) { var convertedChar = void 0; if (!regexIsDigit.test(str[i])) convertedChar = (str[i].charCodeAt(0) - 55) % 11;else convertedChar = str[i]; checkSumVal += convertedChar * (9 - i); } checkSumVal %= 11; var checkSumConverted; if (checkSumVal === 0) checkSumConverted = '0';else if (checkSumVal === 1) checkSumConverted = 'A';else checkSumConverted = String(11 - checkSumVal); if (checkSumConverted === str[str.length - 1]) return true; return false; }, '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;
Save
cmd:
run