isPostalCode.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.locales = undefined;
  6. exports.default = function (str, locale) {
  7. (0, _assertString2.default)(str);
  8. if (locale in patterns) {
  9. return patterns[locale].test(str);
  10. } else if (locale === 'any') {
  11. for (var key in patterns) {
  12. if (patterns.hasOwnProperty(key)) {
  13. var pattern = patterns[key];
  14. if (pattern.test(str)) {
  15. return true;
  16. }
  17. }
  18. }
  19. return false;
  20. }
  21. throw new Error('Invalid locale \'' + locale + '\'');
  22. };
  23. var _assertString = require('./util/assertString');
  24. var _assertString2 = _interopRequireDefault(_assertString);
  25. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  26. // common patterns
  27. var threeDigit = /^\d{3}$/;
  28. var fourDigit = /^\d{4}$/;
  29. var fiveDigit = /^\d{5}$/;
  30. var sixDigit = /^\d{6}$/;
  31. var patterns = {
  32. AT: fourDigit,
  33. AU: fourDigit,
  34. BE: fourDigit,
  35. BG: fourDigit,
  36. CA: /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i,
  37. CH: fourDigit,
  38. CZ: /^\d{3}\s?\d{2}$/,
  39. DE: fiveDigit,
  40. DK: fourDigit,
  41. DZ: fiveDigit,
  42. ES: fiveDigit,
  43. FI: fiveDigit,
  44. FR: /^\d{2}\s?\d{3}$/,
  45. GB: /^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i,
  46. GR: /^\d{3}\s?\d{2}$/,
  47. IL: fiveDigit,
  48. IN: sixDigit,
  49. IS: threeDigit,
  50. IT: fiveDigit,
  51. JP: /^\d{3}\-\d{4}$/,
  52. KE: fiveDigit,
  53. LI: /^(948[5-9]|949[0-7])$/,
  54. MX: fiveDigit,
  55. NL: /^\d{4}\s?[a-z]{2}$/i,
  56. NO: fourDigit,
  57. PL: /^\d{2}\-\d{3}$/,
  58. PT: /^\d{4}\-\d{3}?$/,
  59. RO: sixDigit,
  60. RU: sixDigit,
  61. SA: fiveDigit,
  62. SE: /^\d{3}\s?\d{2}$/,
  63. TW: /^\d{3}(\d{2})?$/,
  64. US: /^\d{5}(-\d{4})?$/,
  65. ZA: fourDigit,
  66. ZM: fiveDigit
  67. };
  68. var locales = exports.locales = Object.keys(patterns);