summaryrefslogtreecommitdiff
path: root/src/node_modules/validator/es/lib/isPostalCode.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2021-12-21 16:52:28 +0100
committerMinteck <contact@minteck.org>2021-12-21 16:52:28 +0100
commit46e43f4bde4a35785b4997b81e86cd19f046b69b (patch)
treec53c2f826f777f9d6b2d249dab556feb72a6c3a6 /src/node_modules/validator/es/lib/isPostalCode.js
downloadlangdetect-46e43f4bde4a35785b4997b81e86cd19f046b69b.tar.gz
langdetect-46e43f4bde4a35785b4997b81e86cd19f046b69b.tar.bz2
langdetect-46e43f4bde4a35785b4997b81e86cd19f046b69b.zip
Commit
Diffstat (limited to 'src/node_modules/validator/es/lib/isPostalCode.js')
-rw-r--r--src/node_modules/validator/es/lib/isPostalCode.js84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/node_modules/validator/es/lib/isPostalCode.js b/src/node_modules/validator/es/lib/isPostalCode.js
new file mode 100644
index 0000000..a333007
--- /dev/null
+++ b/src/node_modules/validator/es/lib/isPostalCode.js
@@ -0,0 +1,84 @@
+import assertString from './util/assertString'; // 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
+};
+export var locales = Object.keys(patterns);
+export default function (str, locale) {
+ assertString(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, "'"));
+} \ No newline at end of file