| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 | 
							- "use strict";
 
- Object.defineProperty(exports, "__esModule", {
 
-   value: true
 
- });
 
- exports.default = isPassportNumber;
 
- var _assertString = _interopRequireDefault(require("./util/assertString"));
 
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
- /**
 
-  * Reference:
 
-  * https://en.wikipedia.org/ -- Wikipedia
 
-  * https://docs.microsoft.com/en-us/microsoft-365/compliance/eu-passport-number -- EU Passport Number
 
-  * https://countrycode.org/ -- Country Codes
 
-  */
 
- var passportRegexByCountryCode = {
 
-   AM: /^[A-Z]{2}\d{7}$/,
 
-   // ARMENIA
 
-   AR: /^[A-Z]{3}\d{6}$/,
 
-   // ARGENTINA
 
-   AT: /^[A-Z]\d{7}$/,
 
-   // AUSTRIA
 
-   AU: /^[A-Z]\d{7}$/,
 
-   // AUSTRALIA
 
-   AZ: /^[A-Z]{1}\d{8}$/,
 
-   // AZERBAIJAN
 
-   BE: /^[A-Z]{2}\d{6}$/,
 
-   // BELGIUM
 
-   BG: /^\d{9}$/,
 
-   // BULGARIA
 
-   BR: /^[A-Z]{2}\d{6}$/,
 
-   // BRAZIL
 
-   BY: /^[A-Z]{2}\d{7}$/,
 
-   // BELARUS
 
-   CA: /^[A-Z]{2}\d{6}$/,
 
-   // CANADA
 
-   CH: /^[A-Z]\d{7}$/,
 
-   // SWITZERLAND
 
-   CN: /^G\d{8}$|^E(?![IO])[A-Z0-9]\d{7}$/,
 
-   // CHINA [G=Ordinary, E=Electronic] followed by 8-digits, or E followed by any UPPERCASE letter (except I and O) followed by 7 digits
 
-   CY: /^[A-Z](\d{6}|\d{8})$/,
 
-   // CYPRUS
 
-   CZ: /^\d{8}$/,
 
-   // CZECH REPUBLIC
 
-   DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,
 
-   // GERMANY
 
-   DK: /^\d{9}$/,
 
-   // DENMARK
 
-   DZ: /^\d{9}$/,
 
-   // ALGERIA
 
-   EE: /^([A-Z]\d{7}|[A-Z]{2}\d{7})$/,
 
-   // ESTONIA (K followed by 7-digits), e-passports have 2 UPPERCASE followed by 7 digits
 
-   ES: /^[A-Z0-9]{2}([A-Z0-9]?)\d{6}$/,
 
-   // SPAIN
 
-   FI: /^[A-Z]{2}\d{7}$/,
 
-   // FINLAND
 
-   FR: /^\d{2}[A-Z]{2}\d{5}$/,
 
-   // FRANCE
 
-   GB: /^\d{9}$/,
 
-   // UNITED KINGDOM
 
-   GR: /^[A-Z]{2}\d{7}$/,
 
-   // GREECE
 
-   HR: /^\d{9}$/,
 
-   // CROATIA
 
-   HU: /^[A-Z]{2}(\d{6}|\d{7})$/,
 
-   // HUNGARY
 
-   IE: /^[A-Z0-9]{2}\d{7}$/,
 
-   // IRELAND
 
-   IN: /^[A-Z]{1}-?\d{7}$/,
 
-   // INDIA
 
-   ID: /^[A-C]\d{7}$/,
 
-   // INDONESIA
 
-   IR: /^[A-Z]\d{8}$/,
 
-   // IRAN
 
-   IS: /^(A)\d{7}$/,
 
-   // ICELAND
 
-   IT: /^[A-Z0-9]{2}\d{7}$/,
 
-   // ITALY
 
-   JM: /^[Aa]\d{7}$/,
 
-   // JAMAICA
 
-   JP: /^[A-Z]{2}\d{7}$/,
 
-   // JAPAN
 
-   KR: /^[MS]\d{8}$/,
 
-   // SOUTH KOREA, REPUBLIC OF KOREA, [S=PS Passports, M=PM Passports]
 
-   KZ: /^[a-zA-Z]\d{7}$/,
 
-   // KAZAKHSTAN
 
-   LI: /^[a-zA-Z]\d{5}$/,
 
-   // LIECHTENSTEIN
 
-   LT: /^[A-Z0-9]{8}$/,
 
-   // LITHUANIA
 
-   LU: /^[A-Z0-9]{8}$/,
 
-   // LUXEMBURG
 
-   LV: /^[A-Z0-9]{2}\d{7}$/,
 
-   // LATVIA
 
-   LY: /^[A-Z0-9]{8}$/,
 
-   // LIBYA
 
-   MT: /^\d{7}$/,
 
-   // MALTA
 
-   MZ: /^([A-Z]{2}\d{7})|(\d{2}[A-Z]{2}\d{5})$/,
 
-   // MOZAMBIQUE
 
-   MY: /^[AHK]\d{8}$/,
 
-   // MALAYSIA
 
-   MX: /^\d{10,11}$/,
 
-   // MEXICO
 
-   NL: /^[A-Z]{2}[A-Z0-9]{6}\d$/,
 
-   // NETHERLANDS
 
-   NZ: /^([Ll]([Aa]|[Dd]|[Ff]|[Hh])|[Ee]([Aa]|[Pp])|[Nn])\d{6}$/,
 
-   // NEW ZEALAND
 
-   PH: /^([A-Z](\d{6}|\d{7}[A-Z]))|([A-Z]{2}(\d{6}|\d{7}))$/,
 
-   // PHILIPPINES
 
-   PK: /^[A-Z]{2}\d{7}$/,
 
-   // PAKISTAN
 
-   PL: /^[A-Z]{2}\d{7}$/,
 
-   // POLAND
 
-   PT: /^[A-Z]\d{6}$/,
 
-   // PORTUGAL
 
-   RO: /^\d{8,9}$/,
 
-   // ROMANIA
 
-   RU: /^\d{9}$/,
 
-   // RUSSIAN FEDERATION
 
-   SE: /^\d{8}$/,
 
-   // SWEDEN
 
-   SL: /^(P)[A-Z]\d{7}$/,
 
-   // SLOVENIA
 
-   SK: /^[0-9A-Z]\d{7}$/,
 
-   // SLOVAKIA
 
-   TH: /^[A-Z]{1,2}\d{6,7}$/,
 
-   // THAILAND
 
-   TR: /^[A-Z]\d{8}$/,
 
-   // TURKEY
 
-   UA: /^[A-Z]{2}\d{6}$/,
 
-   // UKRAINE
 
-   US: /^\d{9}$/,
 
-   // UNITED STATES
 
-   ZA: /^[TAMD]\d{8}$/ // SOUTH AFRICA
 
- };
 
- /**
 
-  * Check if str is a valid passport number
 
-  * relative to provided ISO Country Code.
 
-  *
 
-  * @param {string} str
 
-  * @param {string} countryCode
 
-  * @return {boolean}
 
-  */
 
- function isPassportNumber(str, countryCode) {
 
-   (0, _assertString.default)(str);
 
-   /** Remove All Whitespaces, Convert to UPPERCASE */
 
-   var normalizedStr = str.replace(/\s/g, '').toUpperCase();
 
-   return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr);
 
- }
 
- module.exports = exports.default;
 
- module.exports.default = exports.default;
 
 
  |