Kom ihåg mig?
Home Menu

Menu


PHP - Regular Expressions - VATIN

 
Ämnesverktyg Visningsalternativ
Oläst 2007-11-13, 01:00 #1
FredrikMHs avatar
FredrikMH FredrikMH är inte uppkopplad
Supermoderator
 
Reg.datum: Apr 2004
Inlägg: 1 501
FredrikMH FredrikMH är inte uppkopplad
Supermoderator
FredrikMHs avatar
 
Reg.datum: Apr 2004
Inlägg: 1 501
Har roat mig ikväll med att undersöka hur de olika medlemsländernas momsregistreringsnummer ser ut, även kallat VATIN (Value Added Tax Identification Number) för att sedan skapa regular expressions för att kunna kontrollera om ett inmatat VATIN är korrekt eller ej. En lista över utformningen av momsregistreringsnummer för respektive medlemsland hittade jag på EUs hemsida och dessa regex bygger på dessa och förutsätter att dessa är korrekta.

Jag har inte testat alla och en del går kanske att korta ner något men för mig är det av mindre betydelse att ha optimerade regex.

För vissa länder ställer kanske dessa regex för stora krav på användaren när han fyller i informationen. Exempelvis har vissa länder så som Storbritannien och Danmark uppdelade block av siffror och regex förutsätter att mellanslagen är på med och på rätt ställe. Oavsett så hoppas jag att detta kan vara till nytta för någon. Själv ska jag använda detta som en första validering innan jag skickar en förfrågan till EUs script för att kontrollera om VATIN verkligen existerar.

Listan:

Austria = /^ATU[0-9]{8}$/
Belgium = /^BE[0]{0,1}[0-9]{9}$/
Bulgaria = /^BG[0-9]{9,10}$/
Cyprus = /^CY[0-9]{8}[a-zA-Z]{1}$/
Czech Republic = /^CZ[0-9]{8,10}$/
Denmark = /^DK\d\d \d\d \d\d \d\d$/
Estonia = /^EE[0-9]{9}$/
Finland = /^FI[0-9]{8}$/
France = /^FR[a-zA-Z0-9]{2} [0-9]{9}$/
Germany = /^DE[0-9]{9}$/
Greece = /^EL[0-9]{9}$/
Hungary = /^HU[0-9]{8}$/
Ireland = /^IE\d[a-zA-Z0-9+*][0-9]{5}[a-zA-Z]$/
Italy = /^IT[0-9]{11}$/
Latvia = /^LV[0-9]{11}$/
Lithuania = /^LT([0-9]{9}|[0-9]{12})$/
Luxembourg = /^LU[0-9]{8}$/
Malta = /^MT[0-9]{8}$/
Netherlands = /^NL[0-9]{9}B\d\d$/
Poland = /^PL[0-9]{10}$/
Portugal = /^PT[0-9]{9}$/
Romania = /^RO[0-9]{2,10}$/
Slovakia = /^SK[0-9]{10}$/
Slovenia = /^SI[0-9]{8}$/
Spain = /^ES[a-zA-Z0-9][0-9]{7}[a-zA-Z0-9]$/
Sweden = /^SE[0-9]{12}$/
United Kingdom = /^GB(\d\d\d \d\d\d\d \d\d|\d\d\d \d\d\d\d \d\d \d\d\d|(GD|HA)\d\d\d)$/
FredrikMH är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 05:45.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017