1function check_vat_num(vatcode){ 2 res = checkVATNumber(vatcode); 3 if(vatcode == res){ 4 return true; 5 } 6 return false; 7} 8 9function checkVATNumber(toCheck){var vatexp=new Array();var defCCode="GB";vatexp.push(/^(AT)U(\d{8})$/);vatexp.push(/^(BE)(\d{9,10})$/);vatexp.push(/^(BG)(\d{9,10})$/);vatexp.push(/^(CY)(\d{8}[A-Z])$/);vatexp.push(/^(CZ)(\d{8,10})(\d{3})?$/);vatexp.push(/^(DE)(\d{9})$/);vatexp.push(/^(DK)((\d{8}))$/);vatexp.push(/^(EE)(\d{9})$/);vatexp.push(/^(EL)(\d{8,9})$/);vatexp.push(/^(ES)([A-Z]\d{8})$/);vatexp.push(/^(ES)(\d{8}[A-Z])$/);vatexp.push(/^(ES)([A-Z]\d{7}[A-Z])$/);vatexp.push(/^(EU)(\d{9})$/);vatexp.push(/^(FI)(\d{8})$/);vatexp.push(/^(FR)(\d{11})$/);vatexp.push(/^(FR)[(A-H)|(J-N)|(P-Z)]\d{10}$/);vatexp.push(/^(FR)\d[(A-H)|(J-N)|(P-Z)]\d{9}$/);vatexp.push(/^(FR)[(A-H)|(J-N)|(P-Z)]{2}\d{9}$/);vatexp.push(/^(GB)?(\d{9})$/);vatexp.push(/^(GB)?(\d{10})$/);vatexp.push(/^(GB)?(\d{12})$/);vatexp.push(/^(GB)?(\d{13})$/);vatexp.push(/^(GB)?(GD\d{3})$/);vatexp.push(/^(GB)?(HA\d{3})$/);vatexp.push(/^(GR)(\d{8,9})$/);vatexp.push(/^(HU)(\d{8})$/);vatexp.push(/^(IE)(\d{7}[A-W])$/);vatexp.push(/^(IE)([7-9][A-Z\*\+)]\d{5}[A-W])$/);vatexp.push(/^(IE)?(\d{7})[A-Z][A-Z]$/);vatexp.push(/^(IT)(\d{11})$/);vatexp.push(/^(HR)(\d{11})$/);vatexp.push(/^(LV)(\d{11})$/);vatexp.push(/^(LT)(\d{9}|\d{12})$/);vatexp.push(/^(LU)(\d{8})$/);vatexp.push(/^(MT)(\d{8})$/);vatexp.push(/^(NL)(\d{9})B\d{2}$/);vatexp.push(/^(PL)(\d{10})$/);vatexp.push(/^(PT)(\d{9})$/);vatexp.push(/^(RO)(\d{2,10})$/);vatexp.push(/^(SI)(\d{8})$/);vatexp.push(/^(SK)(\d{9}|\d{10})$/);vatexp.push(/^(SE)(\d{10}\d[1-4])$/);var VATNumber=toCheck.toString().toUpperCase();var chars=[" ","-",",","."];for(var i=0;i<chars.length;i++){while(VATNumber.indexOf(chars[i])!=-1){VATNumber=VATNumber.slice(0,VATNumber.indexOf(chars[i]))+VATNumber.slice(VATNumber.indexOf(chars[i])+1);}} 10var valid=false;for(i=0;i<vatexp.length;i++){if(vatexp[i].test(VATNumber)){var cCode=RegExp.$1;var cNumber=RegExp.$2;if(cCode.length==0)cCode=defCCode;switch(cCode){case"AT":valid=ATVATCheckDigit(cNumber);break;case"BE":valid=BEVATCheckDigit(cNumber);break;case"BG":valid=true;break;case"CY":valid=CYVATCheckDigit(cNumber);break;case"CZ":valid=CZVATCheckDigit(cNumber);break;case"DE":valid=DEVATCheckDigit(cNumber);break;case"DK":valid=DKVATCheckDigit(cNumber);break;case"EE":valid=EEVATCheckDigit(cNumber);break;case"EL":valid=ELVATCheckDigit(cNumber);break;case"ES":valid=ESVATCheckDigit(cNumber);break;case"EU":valid=EUVATCheckDigit(cNumber);break;case"FI":valid=FIVATCheckDigit(cNumber);break;case"FR":valid=FRVATCheckDigit(cNumber);break;case"GB":valid=UKVATCheckDigit(cNumber);break;case"GR":valid=ELVATCheckDigit(cNumber);break;case"HU":valid=HUVATCheckDigit(cNumber);break;case"IE":valid=true;break;/*valid=IEVATCheckDigit(cNumber);break;*/case"IT":valid=ITVATCheckDigit(cNumber);break;case"HR":valid=HRVATCheckDigit(cNumber);break;case"LT":valid=LTVATCheckDigit(cNumber);break;case"LU":valid=LUVATCheckDigit(cNumber);break;case"LV":valid=LVVATCheckDigit(cNumber);break;case"MT":valid=MTVATCheckDigit(cNumber);break;case"NL":valid=NLVATCheckDigit(cNumber);break;case"PL":valid=PLVATCheckDigit(cNumber);break;case"PT":valid=PTVATCheckDigit(cNumber);break;case"RO":valid=ROVATCheckDigit(cNumber);break;case"SE":valid=SEVATCheckDigit(cNumber);break;case"SI":valid=SIVATCheckDigit(cNumber);break;default:valid=true;} 11if(valid)valid=VATNumber;break;}} 12return valid;} 13function ATVATCheckDigit(vatnumber){var total=0;var multipliers=[1,2,1,2,1,2,1];var temp=0;for(var i=0;i<7;i++){temp=Number(vatnumber.charAt(i))*multipliers[i];if(temp>9) 14total=total+Math.floor(temp/10)+temp%10 15else 16total=total+temp;} 17total=10-(total+4)%10;if(total==10)total=0;if(total==vatnumber.slice(7,8)) 18return true 19else 20return false;} 21function BEVATCheckDigit(vatnumber){if(vatnumber.length==10&&vatnumber.slice(0,1)!="0")return false;if(vatnumber.length==9)vatnumber="0"+vatnumber;if(97-vatnumber.slice(0,8)%97==vatnumber.slice(8,10)) 22return true 23else 24return false;} 25function BGVATCheckDigit(vatnumber){if(vatnumber.length!=10)return true;var total=0;var multipliers=[4,3,2,7,6,5,4,3,2];var temp=0;for(var i=0;i<9;i++){temp=temp+Number(vatnumber.charAt(i))*multipliers[i];} 26total=11-total%11;if(total==10)total=0;if(total==11)total=1;if(total==vatnumber.slice(9,10)) 27return true 28else 29return false;} 30function CYVATCheckDigit(vatnumber){var total=0;for(var i=0;i<8;i++){var temp=Number(vatnumber.charAt(i));if(i%2==0){switch(temp){case 0:temp=1;break;case 1:temp=0;break;case 2:temp=5;break;case 3:temp=7;break;case 4:temp=9;break;default:temp=temp*2+3;}} 31total=total+temp;} 32total=total%26;total=String.fromCharCode(total+65);if(total==vatnumber.substr(8,1)) 33return true 34else 35return false;} 36function CZVATCheckDigit(vatnumber){var total=0;var multipliers=[8,7,6,5,4,3,2];if(vatnumber.length!=8)return true;for(var i=0;i<7;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];total=11-total%11;if(total==10)total=0;if(total==11)total=1;if(total==vatnumber.slice(7,8)) 37return true 38else 39return false;} 40function DEVATCheckDigit(vatnumber){var product=10;var sum=0;var checkdigit=0;for(var i=0;i<8;i++){sum=(Number(vatnumber.charAt(i))+product)%10;if(sum==0){sum=10};product=(2*sum)%11;} 41if(11-product==10){checkdigit=0}else{checkdigit=11-product};if(checkdigit==vatnumber.slice(8,9)) 42return true 43else 44return false;} 45function DKVATCheckDigit(vatnumber){var total=0;var multipliers=[2,7,6,5,4,3,2,1];for(var i=0;i<8;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];total=total%11;if(total==0) 46return true 47else 48return false;} 49function EEVATCheckDigit(vatnumber){var total=0;var multipliers=[3,7,1,3,7,1,3,7];for(var i=0;i<8;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];total=10-total%10;if(total==10)total=0;if(total==vatnumber.slice(8,9)) 50return true 51else 52return false;} 53function ELVATCheckDigit(vatnumber){var total=0;var multipliers=[256,128,64,32,16,8,4,2];if(vatnumber.length==8){vatnumber="0"+vatnumber};for(var i=0;i<8;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];total=total%11;if(total>9){total=0;};if(total==vatnumber.slice(8,9)) 54return true 55else 56return false;} 57function ESVATCheckDigit(vatnumber){var total=0;var temp=0;var multipliers=[2,1,2,1,2,1,2];var esexp=new Array();esexp.push(/^[A-H]\d{8}$/);esexp.push(/^[N|P|Q|S]\d{7}[A-Z]$/);esexp.push(/^[0-9]{8}[A-Z]$/);var i=0;if(esexp[0].test(vatnumber)){for(i=0;i<7;i++){temp=Number(vatnumber.charAt(i+1))*multipliers[i];if(temp>9) 58total=total+Math.floor(temp/10)+temp%10 59else 60total=total+temp;} 61total=10-total%10;if(total==10){total=0;} 62if(total==vatnumber.slice(8,9)) 63return true 64else 65return false;} 66else if(esexp[1].test(vatnumber)){for(i=0;i<7;i++){temp=Number(vatnumber.charAt(i+1))*multipliers[i];if(temp>9) 67total=total+Math.floor(temp/10)+temp%10 68else 69total=total+temp;} 70total=10-total%10;total=String.fromCharCode(total+64);if(total==vatnumber.slice(8,9)) 71return true 72else 73return false;} 74else if(esexp[2].test(vatnumber)){return vatnumber.charAt(8)=='TRWAGMYFPDXBNJZSQVHLCKE'.charAt(Number(vatnumber.substring(0,8))%23);} 75else return true;} 76function EUVATCheckDigit(vatnumber){return true;} 77function FIVATCheckDigit(vatnumber){var total=0;var multipliers=[7,9,10,5,8,4,2];for(var i=0;i<7;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];total=11-total%11;if(total>9){total=0;};if(total==vatnumber.slice(7,8)) 78return true 79else 80return false;} 81function FRVATCheckDigit(vatnumber){if(!(/^\d{11}$/).test(vatnumber))return true;var total=vatnumber.substring(2);total=(total*100+12)%97;if(total==vatnumber.slice(0,2)) 82return true 83else 84return false;} 85function HUVATCheckDigit(vatnumber){var total=0;var multipliers=[9,7,3,1,9,7,3];for(var i=0;i<7;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];total=10-total%10;if(total==10)total=0;if(total==vatnumber.slice(7,8)) 86return true 87else 88return false;} 89function IEVATCheckDigit(vatnumber){var total=0;var multipliers=[8,7,6,5,4,3,2];
89if(/^\d[A-Z\*\+]/.test(vatnumber)){vatnumber="0"+vatnumber.substring(2,7)+vatnumber.substring(0,1)+vatnumber.substring(7,8);} 90for(var i=0;i<7;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];total=total%23;if(total==0) 91total="W" 92else 93total=String.fromCharCode(total+64);if(total==vatnumber.slice(7,8)) 94return true 95else 96return false;} 97function HRVATCheckDigit(vatnumber){ 98var product = 10;var sum = 0;var checkdigit = 0; 99for (var i = 0; i < 10; i++) { 100 sum = (Number(vatnumber.charAt(i)) + product) % 10; 101 if (sum == 0) {sum = 10}; 102 product = (2 * sum) % 11; 103} 104if ((product + vatnumber.slice (10,11)*1) % 10== 1) 105return true 106else 107return false; 108} 109function ITVATCheckDigit(vatnumber){var total=0;var multipliers=[1,2,1,2,1,2,1,2,1,2];var temp;temp=Number(vatnumber.slice(0,7));if(temp==0)return false;temp=Number(vatnumber.slice(7,10));if((temp<1)||(temp>201))return false;for(var i=0;i<10;i++){temp=Number(vatnumber.charAt(i))*multipliers[i];if(temp>9) 110total=total+Math.floor(temp/10)+temp%10 111else 112total=total+temp;} 113total=10-total%10;if(total>9){total=0;};if(total==vatnumber.slice(10,11)) 114return true 115else 116return false;} 117function LTVATCheckDigit(vatnumber){if(vatnumber.length!=9)return true;var total=0;for(var i=0;i<8;i++)total=total+Number(vatnumber.charAt(i))*(i+1);if(total%11==10){var multipliers=[3,4,5,6,7,8,9,1];total=0;for(i=0;i<8;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];} 118total=total%11;if(total==10){total=0;};if(total==vatnumber.slice(8,9)) 119return true 120else 121return false;} 122function LUVATCheckDigit(vatnumber){if(vatnumber.slice(0,6)%89==vatnumber.slice(6,8)) 123return true 124else 125return false;} 126function LVVATCheckDigit(vatnumber){if((/^[0-3]/).test(vatnumber))return true;var total=0;var multipliers=[9,1,4,8,3,10,2,5,7,6];for(var i=0;i<10;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];if(total%11==4&&vatnumber[0]==9)total=total-45;if(total%11==4) 127total=4-total%11 128else if(total%11>4) 129total=14-total%11 130else if(total%11<4) 131total=3-total%11;if(total==vatnumber.slice(10,11)) 132return true 133else 134return false;} 135function MTVATCheckDigit(vatnumber){var total=0;var multipliers=[3,4,6,7,8,9];for(var i=0;i<6;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];total=37-total%37;if(total==vatnumber.slice(6,8)*1) 136return true 137else 138return false;} 139//function NLVATCheckDigit(vatnumber){var total=0;var multipliers=[9,8,7,6,5,4,3,2];for(var i=0;i<8;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];total=total%11;if(total>9){total=0;};if(total==vatnumber.slice(8,9)) 140function NLVATCheckDigit(vatnumber){ 141return true 142//else 143//return false;} 144} 145function PLVATCheckDigit(vatnumber){var total=0;var multipliers=[6,5,7,2,3,4,5,6,7];for(var i=0;i<9;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];total=total%11;if(total>9){total=0;};if(total==vatnumber.slice(9,10)) 146return true 147else 148return false;} 149function PTVATCheckDigit(vatnumber){var total=0;var multipliers=[9,8,7,6,5,4,3,2];for(var i=0;i<8;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];total=11-total%11;if(total>9){total=0;};if(total==vatnumber.slice(8,9)) 150return true 151else 152return false;}
153function ROVATCheckDigit(vatnumber){var multipliers=[7,5,3,2,1,7,5,3,2,1];var VATlen=vatnumber.length;multipliers=multipliers.slice(10-VATlen);var total=0;for(var i=0;i<vatnumber.length-1;i++){total=total+Number(vatnumber.charAt(i))*multipliers[i];} 154total=(10*total)%11;if(total==10)total=0;if(total==vatnumber.slice(vatnumber.length-1,vatnumber.length)) 155return true 156else 157return false;} 158function SEVATCheckDigit(vatnumber){var total=0;var multipliers=[2,1,2,1,2,1,2,1,2];var temp=0;for(var i=0;i<9;i++){temp=Number(vatnumber.charAt(i))*multipliers[i];if(temp>9) 159total=total+Math.floor(temp/10)+temp%10 160else 161total=total+temp;} 162total=10-(total%10);if(total==10)total=0;if(total==vatnumber.slice(9,10)) 163return true 164else 165return false;} 166function SKVATCheckDigit(vatnumber){var total=0;var multipliers=[8,7,6,5,4,3,2];for(var i=3;i<9;i++){total=total+Number(vatnumber.charAt(i))*multipliers[i-3];} 167total=11-total%11;if(total>9)total=total-10;if(total==vatnumber.slice(9,10)) 168return true 169else 170return false;} 171function SIVATCheckDigit(vatnumber){var total=0;var multipliers=[8,7,6,5,4,3,2];for(var i=0;i<7;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];total=11-total%11;if(total>9){total=0;};if(total==vatnumber.slice(7,8)) 172return true 173else 174return false;} 175function UKVATCheckDigit(vatnumber){var multipliers=[8,7,6,5,4,3,2];if(vatnumber.substr(0,2)=='GD'){if(vatnumber.substr(2,3)<500) 176return true 177else 178return false;} 179if(vatnumber.substr(0,2)=='HA'){if(vatnumber.substr(2,3)>499) 180return true 181else 182return false;} 183if(vatnumber.length==9||vatnumber.length==10){var total=0;if(vatnumber.length==10&&vatnumber.slice(9,10)!='3')return false;for(var i=0;i<7;i++)total=total+Number(vatnumber.charAt(i))*multipliers[i];var cd=total;while(cd>0){cd=cd-97;} 184cd=Math.abs(cd);if(cd==vatnumber.slice(7,9))return true;if(cd>=55) 185cd=cd-55 186else 187cd=cd+42;if(cd==vatnumber.slice(7,9)) 188return true 189else 190return false;} 191return true;} 192 193/* 194function latin_chars_check(myvalue){ 195 myvalue = myvalue.replace(/(\r\n|\n|\r)/gm,""); 196 myvalue = myvalue.replace(/\s+/g," "); 197 if (/[^\u0020-\u01F0]/.test(myvalue)) { 198 // non latin characters found 199 return false; 200 } 201 return true; 202} 203 204function validarCNPJ(cnpj){ 205 var b = [6,5,4,3,2,9,8,7,6,5,4,3,2]; 206 c = cnpj; 207 if((c = c.replace(/[^\d]/g,"").split("")).length != 14) return false; 208 for(var i = 0, n = 0; i < 12; n += c[i] * b[++i]); 209 if(c[12] != (((n %= 11) < 2) ? 0 : 11 - n)) return false; 210 for(var i = 0, n = 0; i <= 12; n += c[i] * b[i++]); 211 if(c[13] != (((n %= 11) < 2) ? 0 : 11 - n)) return false; 212 return true; 213} 214 215function validarCPF(cpf) { 216 cpf = cpf.replace(/[^\d]+/g,''); 217 if(cpf == '') return false; 218 if (cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") return false; 219 220 add = 0; 221 for (i=0; i < 9; i ++) 222 add += parseInt(cpf.charAt(i)) * (10 - i); 223 rev = 11 - (add % 11); 224 if (rev == 10 || rev == 11) 225 rev = 0; 226 if (rev != parseInt(cpf.charAt(9))) return false; 227 228 add = 0; 229 for (i = 0; i < 10; i ++) 230 add += parseInt(cpf.charAt(i)) * (11 - i); 231 rev = 11 - (add % 11); 232 if (rev == 10 || rev == 11) 233 rev = 0; 234 if (rev != parseInt(cpf.charAt(10))) return false; 235 return true; 236} 237*/ 238function checkFiscalCode(cf){ 239 var validi, i, s, set1, set2, setpari, setdisp; 240 if( cf == '' ) return false;; 241 cf = cf.toUpperCase(); 242 if( cf.length != 16 ) 243 return false; 244 validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 245 for( i = 0; i < 16; i++ ){ 246 if( validi.indexOf( cf.charAt(i) ) == -1 ) 247 return false; 248 } 249 set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 250 set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ"; 251 setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 252 setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX"; 253 s = 0; 254 for( i = 1; i <= 13; i += 2 ) 255 s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) ))); 256 for( i = 0; i <= 14; i += 2 ) 257 s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) ))); 258 if( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) ) 259 return false; 260 return true; 261 262}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.