86 lines
1.9 KiB
JavaScript
86 lines
1.9 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.locales = undefined;
|
||
|
|
||
|
exports.default = function (str, locale) {
|
||
|
(0, _assertString2.default)(str);
|
||
|
if (locale in patterns) {
|
||
|
return patterns[locale].test(str);
|
||
|
} else if (locale === 'any') {
|
||
|
for (var key in patterns) {
|
||
|
if (patterns.hasOwnProperty(key)) {
|
||
|
var pattern = patterns[key];
|
||
|
if (pattern.test(str)) {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
throw new Error('Invalid locale \'' + locale + '\'');
|
||
|
};
|
||
|
|
||
|
var _assertString = require('./util/assertString');
|
||
|
|
||
|
var _assertString2 = _interopRequireDefault(_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,
|
||
|
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,
|
||
|
IL: fiveDigit,
|
||
|
IN: sixDigit,
|
||
|
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,
|
||
|
NL: /^\d{4}\s?[a-z]{2}$/i,
|
||
|
NO: fourDigit,
|
||
|
PL: /^\d{2}\-\d{3}$/,
|
||
|
PT: /^\d{4}\-\d{3}?$/,
|
||
|
RO: sixDigit,
|
||
|
RU: sixDigit,
|
||
|
SA: fiveDigit,
|
||
|
SE: /^\d{3}\s?\d{2}$/,
|
||
|
SI: fourDigit,
|
||
|
SK: /^\d{3}\s?\d{2}$/,
|
||
|
TN: fourDigit,
|
||
|
TW: /^\d{3}(\d{2})?$/,
|
||
|
US: /^\d{5}(-\d{4})?$/,
|
||
|
ZA: fourDigit,
|
||
|
ZM: fiveDigit
|
||
|
};
|
||
|
|
||
|
var locales = exports.locales = Object.keys(patterns);
|