我正在编写一个带有来自文件的不同输入的小应用程序(如国家代码,增值税号等),我必须验证增值税号码的格式是否正确.
我试过这个:http: //www.codeproject.com/KB/webservices/VATchecker.aspx - 它的工作原理..但是,是的,总有一个但是:-),我必须检查100以内的任何地方 - 500个增值税号码,它太慢了.此外,我不确定他们是否感谢我这样锤击他们的网站.
有谁知道我可以在我的C#程序中构建的离线增值税验证器?
Big*_*igM 11
基于@Uwe Keim的(过时的)答案我使用这些规则制作2014年的正则表达式:http://www.bzst.de/DE/Steuern_International/USt_Identifikationsnummer/Merkblaetter/Aufbau_USt_IdNr.html?nn = 23440
AT ^ATU[A-Z0-9]{8,8}$
BE ^BE[0-9]{10,10}$
BG ^BG[0-9]{9,9}$|^BG[0-9]{10,10}$
CY ^CY[0-9]{8,8}[A-Z]{1,1}$
CZ ^CZ[0-9]{8,10}$
DE ^DE[0-9]{9,9}$
DK ^DK[0-9]{8,8}$
EE ^EE[0-9]{9,9}$
ES ^ES[A-Z0-9]{1,1}[0-9]{7,7}[A-Z0-9]{1,1}$
FI ^FI[0-9]{8,8}$
FR ^FR[A-Z0-9]{2,2}[0-9]{9,9}$
GB ^GB[0-9]{9,9}$|^GB[0-9]{12,12}$|^GBGD[0-9]{3,3}$|^GBHA[0-9]{3,3}$
HU ^HU[0-9]{8,8}$
IE ^IE[0-9]{1,1}[A-Z0-9]{1,1}[0-9]{5,5}[A-Z]{1,1}$|^IE[0-9]{7,7}[A-W]{1,1}[A-I]{1,1}$
IT ^IT[0-9]{11,11}$
LT ^LT[0-9]{9,9}$|^LT[0-9]{12,12}$
LU ^LU[0-9]{8,8}$
LV ^LV[0-9]{11,11}$
MT ^MT[0-9]{8,8}$
NL ^NL[A-Z0-9]{9,9}B[A-Z0-9]{2,2}$
PL ^PL[0-9]{10,10}$
PT ^PT[0-9]{9,9}$
SE ^SE[0-9]{10,10}01$
SI ^SI[0-9]{8,8}$
SK ^SK[0-9]{10,10}$
RO ^RO[1-9]{1,1}[0-9]{1,9}$
EL ^EL[0-9]{9,9}$
HR ^HR[0-9]{11,11}$
Run Code Online (Sandbox Code Playgroud)
有人可能需要它.
在我们的在线商店中,我的做法类似于Code Project文章中的解决方案.
在将其提交给Web服务之前,我会进行一个小的正则表达式健全性检查,以过滤掉"语法上"错误的增值税ID,从而减少我必须执行的SOAP调用次数.
这是我用来存储正则表达式的表的摘录,如果您计划类似的东西,这可能会对您有所帮助:
Code2 VatIDRegex
----------------------------------------------------------
at ^ATU[A-Z0-9]{8,8}$
be ^BE[0-9]{9,9}$
cy ^CY[0-9]{9,9}$
cz ^CZ[0-9]{8,10}$
de ^DE[0-9]{9,9}$
dk ^DK[0-9]{8,8}$
ee ^EE[0-9]{9,9}$
es ^ES[A-Z0-9]{1,1}[0-9]{7,7}[A-Z0-9]{1,1}$
fi ^FI[0-9]{8,8}$
fr ^FR[A-Z0-9]{2,2}[0-9]{9,9}$
gb ^GB[0-9]{9,9}$|^GB[0-9]{12,12}$|^GBGD[0-9]{3,3}$
hu ^HU[0-9]{8,8}$
ie ^IE[A-Z0-9]{8,8}$
it ^IT[0-9]{11,11}$
lt ^LT[0-9]{9,9}$|^LT[0-9]{12,12}$
lu ^LU[0-9]{8,8}$
lv ^LV[0-9]{11,11}$
mt ^MT[0-9]{8,8}$
nl ^NL[A-Z0-9]{9,9}B[A-Z0-9]{2,2}$
pl ^PL[0-9]{10,10}$
pt ^PT[0-9]{9,9}$
se ^SE[0-9]{12,12}$
si ^SI[0-9]{8,8}$
sk ^SK[0-9]{10,10}$
Run Code Online (Sandbox Code Playgroud)