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
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, "'")); |
|
} |