Check the validity of the format of an EU VAT number. No dependencies(except angularjs of course).
Angular-js wrapper for jsvat (jsvat it's a core-logic for vat validation)
angular-jsvat is a small library to check validity of European (and few non-eu) VAT number. (learn more about VAT) jsvat use 2-step check (see below) and didn't make any request for external resources.
Each country has own regexp for VAT number and different math-logic of number calculating.
For more details check jsvat repo.
- Provide
JsVatFactory
facatory (just an angularjs wrapper for jsvat)
Just check is VAT number valid or not and which country this VAT is:
JsVatFactory.checkVAT('BG131134023'); // {isValid: true, country: 'bulgaria', value: 'BG131134023'}
JsVatFactory.checkVAT('BG0433170001'); //{isValid: false, country: null, value: 'BG0433170001'}
JsVatFactory.checkVAT('atu5-150-7409'); //{isValid: true, country: 'austria', value: 'ATU51507409'}
JsVatFactory.checkVAT('aTU 5 804 4146'); //{isValid: true, country: 'austria', value: 'ATU58044146'}
You can specify list of allowed countries
JsVatFactory.config = ['austria', 'belgium']; //All countries except 'austria' and 'belgium' would return false
JsVatFactory.checkVAT('BG131134023'); //valid VAT, but result would be 'false'
To reset config just do JsVatFactory.config = [];
- Provide
jsvat
directive (for inputs). Directive take a ngModel and return the result to the result object
<input jsvat="result" type="text" ng-model="model">
- Bower
bower i angular-jsvat --save
- NPM (node.js)
npm i angular-jsvat --save
- Directly download one of the latest releases:
https://github.com/se-panfilov/angular-jsvat/releases
After that, just include angular-jsvat
as a dependency
angular.module('app', ['angular-jsvat'])
(no dependencies required, angular-jsvat is standalone app)
It use jsvat core functionality:
There is 2-step check:
- Compare with list of Regexps;
For example regexp for austria is /^(AT)U(\d{8})$/
.
Looks like ATU99999999
is valid (it's successfied the regexp), but actually it's should be invalid.
- Some magic mathematical counting;
Here we make some mathematical calculation (different for each country).
After that we may be sure that ATU99999999
and for example ATV66889218
isn't valid, but ATU12011204
is valid.
- Austria
- Belgium
- Bulgaria
- Switzerland
- Cyprus
- Czech Republic
- Germany
- Denmark
- Greece
- Spain
- Europe
- Finland
- France
- United Kingdom
- Croatia
- Hungary
- Ireland
- Italy
- Latvia
- Lithunia
- Luxembourg
- Malta
- Netherlands
- Norway
- Poland
- Portugal
- Romania
- Russia Federation
- Serbia
- Slovenia
- Slovakia republic
- Sweden
Support all browsers down to IE9 (including IE9).
MIT: https://github.com/se-panfilov/jsvat/blob/master/LICENSE