You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							97 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
	
	
							97 lines
						
					
					
						
							2.3 KiB
						
					
					
				| "use strict";
 | |
| 
 | |
| Object.defineProperty(exports, "__esModule", {
 | |
|   value: true
 | |
| });
 | |
| exports.default = _default;
 | |
| exports.locales = void 0;
 | |
| 
 | |
| var _assertString = _interopRequireDefault(require("./util/assertString"));
 | |
| 
 | |
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 | |
| 
 | |
| // common patterns
 | |
| var threeDigit = /^\d{3}$/;
 | |
| var fourDigit = /^\d{4}$/;
 | |
| var fiveDigit = /^\d{5}$/;
 | |
| var sixDigit = /^\d{6}$/;
 | |
| var patterns = {
 | |
|   AD: /^AD\d{3}$/,
 | |
|   AT: fourDigit,
 | |
|   AU: fourDigit,
 | |
|   BE: fourDigit,
 | |
|   BG: fourDigit,
 | |
|   BR: /^\d{5}-\d{3}$/,
 | |
|   CA: /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i,
 | |
|   CH: fourDigit,
 | |
|   CZ: /^\d{3}\s?\d{2}$/,
 | |
|   DE: fiveDigit,
 | |
|   DK: fourDigit,
 | |
|   DZ: fiveDigit,
 | |
|   EE: fiveDigit,
 | |
|   ES: fiveDigit,
 | |
|   FI: fiveDigit,
 | |
|   FR: /^\d{2}\s?\d{3}$/,
 | |
|   GB: /^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i,
 | |
|   GR: /^\d{3}\s?\d{2}$/,
 | |
|   HR: /^([1-5]\d{4}$)/,
 | |
|   HU: fourDigit,
 | |
|   ID: fiveDigit,
 | |
|   IE: /^(?!.*(?:o))[A-z]\d[\dw]\s\w{4}$/i,
 | |
|   IL: fiveDigit,
 | |
|   IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,
 | |
|   IS: threeDigit,
 | |
|   IT: fiveDigit,
 | |
|   JP: /^\d{3}\-\d{4}$/,
 | |
|   KE: fiveDigit,
 | |
|   LI: /^(948[5-9]|949[0-7])$/,
 | |
|   LT: /^LT\-\d{5}$/,
 | |
|   LU: fourDigit,
 | |
|   LV: /^LV\-\d{4}$/,
 | |
|   MX: fiveDigit,
 | |
|   MT: /^[A-Za-z]{3}\s{0,1}\d{4}$/,
 | |
|   NL: /^\d{4}\s?[a-z]{2}$/i,
 | |
|   NO: fourDigit,
 | |
|   NZ: fourDigit,
 | |
|   PL: /^\d{2}\-\d{3}$/,
 | |
|   PR: /^00[679]\d{2}([ -]\d{4})?$/,
 | |
|   PT: /^\d{4}\-\d{3}?$/,
 | |
|   RO: sixDigit,
 | |
|   RU: sixDigit,
 | |
|   SA: fiveDigit,
 | |
|   SE: /^[1-9]\d{2}\s?\d{2}$/,
 | |
|   SI: fourDigit,
 | |
|   SK: /^\d{3}\s?\d{2}$/,
 | |
|   TN: fourDigit,
 | |
|   TW: /^\d{3}(\d{2})?$/,
 | |
|   UA: fiveDigit,
 | |
|   US: /^\d{5}(-\d{4})?$/,
 | |
|   ZA: fourDigit,
 | |
|   ZM: fiveDigit
 | |
| };
 | |
| var locales = Object.keys(patterns);
 | |
| exports.locales = locales;
 | |
| 
 | |
| function _default(str, locale) {
 | |
|   (0, _assertString.default)(str);
 | |
| 
 | |
|   if (locale in patterns) {
 | |
|     return patterns[locale].test(str);
 | |
|   } else if (locale === 'any') {
 | |
|     for (var key in patterns) {
 | |
|       // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes
 | |
|       // istanbul ignore else
 | |
|       if (patterns.hasOwnProperty(key)) {
 | |
|         var pattern = patterns[key];
 | |
| 
 | |
|         if (pattern.test(str)) {
 | |
|           return true;
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     return false;
 | |
|   }
 | |
| 
 | |
|   throw new Error("Invalid locale '".concat(locale, "'"));
 | |
| } |