Validate VIES VAT (european tax numbers)
Hier ein regulärer Ausdruck (regular expression) um Europäische Umsatzsteuernummern (UID, UStId, USt-ID) zu validieren.
[Regex to validate european VAT-Numbers]
[Regex to validate european VAT-Numbers]
String REGEX_VIES_VAT = "^((AT)?U[0-9]{8}|" + "(BE)?0?[0-9]{9}|" + "(BG)?[0-9]{9,10}|" + "(CY)[0-9]{8}[A-Z]|" + "(CZ)?[0-9]{8,10}|" + "(DE)?[0-9]{9}|" + "(DK)?[0-9]{8}|" + "(EE)?[0-9]{9}|" + "(EL|GR)?[0-9]{9}|" + "(ES)?[0-9A-Z][0-9]{7}[0-9A-Z]|" + "(FI)?[0-9]{8}|" + "(FR)?[0-9A-Z]{2}[0-9]{9}|" + "(GB)?([0-9]{9}([0-9]{3})?|[A-Z]{2}[0-9]{3})|" + "(HU)?[0-9]{8}|" + "(IE)?[0-9][0-9A-Z][0-9]{5}[A-Z]|" + "(IT)?[0-9]{11}|" + "(LT)?([0-9]{9}|[0-9]{12})|" + "(LU)?[0-9]{8}|" + "(LV)?[0-9]{11}|" + "(MT)?[0-9]{8}|" + "(NL)?[0-9]{9}B[0-9]{2}|" + "(PL)?[0-9]{10}|" + "(PT)?[0-9]{9}|" + "(RO)?[0-9]{2,10}|" + "(SE)?[0-9]{12}|" + "(SI)?[0-9]{8}|" + "(SK)?[0-9]{10})$";
techomatic - 2010-05-07 14:53
Zypern passt so nicht
die Zeile für Zypern ist so nicht korrekt - die letzte Stelle ist ein beliebiger Buchstabe, nicht aber der Buchstabe "L".
-> "(CY)[0-9]{8}[A-Z]|" +
Das "L" dürfte daher kommen, dass es als Platzhalter für "Letter" in Wikipedia oder bei der EU-Seite zur VAT´s dargestellt wird.
Cheers,
Moritz
Korrigiert