hummm, isso depende muito dos objectivos do programa em questão
Recentemente fiz um trabalho onde considerámos o dono do BI como um cidadão de qualquer país, caso do Brasil os BIs são alfanuméricos..., se for apenas BI Português apenas tens de verificar se tem os digitos todos, salvo erro têm de ter 8 digitos. É uma simples comparação.
A menos que queiras ter em conta o número de controlo dos BIs, aí existem regras, salvo erro...
abraços, HecKel
function CheckNIF(nif){
var c;
// verifica o tamanho
if(nif.length != 9)
return false;
// valida primeiro digito
c = nif.charAt(0);
if((c=='0')||(c=='3')||(c=='4')||(c=='7')||(c=='8'))
return false;
// algoritmo de validação
return AlgoritmoValidacao(nif);
}
function CheckBI(nbi, lastDigit){
var BIformated;
// verifica tamanhos
if((nbi.length < 7) || (nbi.length > 8))
return false;
if(lastDigit.length != 1)
return false;
// prepara o numero de BI formatado
if(nbi.length == 8){
BIformated = nbi + lastDigit;
} else {
BIformated = '0' + nbi + lastDigit;
}
// algoritmo de validação
return AlgoritmoValidacao(BIformated);
}
function AlgoritmoValidacao(numFormated){
var pos, ctl, val = 0;
for(pos=0; pos<8; ++pos){
val += parseInt(numFormated.charAt(pos)) * (9 - pos);
}
ctl = 0;
if((val%11) != 0)
ctl = (11 - val % 11) % 10;
return ctl == parseInt(numFormated.charAt(8));
}
Chegaste a ler o link do post anterior ao teu?Gostaria de saber como faço para validar o nif, ao introduzir o numero do nif para que me diga se é valido ou não, dps tudo isto será validado através de uma web reference, mas nao sei como fazer isto..
I need Help ;(