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.
16 lines
493 B
16 lines
493 B
2 years ago
|
import assertString from './util/assertString';
|
||
|
export var vatMatchers = {
|
||
|
GB: /^GB((\d{3} \d{4} ([0-8][0-9]|9[0-6]))|(\d{9} \d{3})|(((GD[0-4])|(HA[5-9]))[0-9]{2}))$/,
|
||
|
IT: /^(IT)?[0-9]{11}$/,
|
||
|
NL: /^(NL)?[0-9]{9}B[0-9]{2}$/
|
||
|
};
|
||
|
export default function isVAT(str, countryCode) {
|
||
|
assertString(str);
|
||
|
assertString(countryCode);
|
||
|
|
||
|
if (countryCode in vatMatchers) {
|
||
|
return vatMatchers[countryCode].test(str);
|
||
|
}
|
||
|
|
||
|
throw new Error("Invalid country code: '".concat(countryCode, "'"));
|
||
|
}
|