Mas poste o que tu tem até agora para que seja possivel te ajudar.
C
cleison
Ygor:
Java != Javascript
Mas poste o que tu tem até agora para que seja possivel te ajudar.
Fiz pouco não tenho muito conhecimento em javascript
[code]
[quote]
C
cleison
Ai pessoal segue o código deve ajudar alguem.
<scriptlanguage="JavaScript">functionValidaEan(numero){factor=3;sum=0;numlen=numero.value.length;if(numlen==13){for(index=numero.value.length;index>0;--index){if(index!=13){sum=sum+numero.value.substring(index-1,index)*factor;factor=4-factor;}}cc=((1000-sum)%10);ca=numero.value.substring(12);if(cc==ca){alert("EAN-13 válido");}else{alert("Digite um código EAN válido");}}if(numlen==14){for(index=numero.value.length;index>0;--index){if(index!=14){sum=sum+numero.value.substring(index-1,index)*factor;factor=4-factor;}}cc=((1000-sum)%10);ca=numero.value.substring(13);if(cc==ca){alert("EAN-14 válido");}else{alert("Digite um código EAN válido");}}if(numlen==8){for(index=numero.value.length;index>0;--index){if(index!=8){sum=sum+numero.value.substring(index-1,index)*factor;factor=4-factor;}}cc=((1000-sum)%10);ca=numero.value.substring(7);if(cc==ca){alert("EAN-8 válido");}else{alert("Digite um código EAN válido");}}if(numlen==12){for(index=numero.value.length;index>0;--index){if(index!=12){sum=sum+numero.value.substring(index-1,index)*factor;factor=4-factor;}}cc=((1000-sum)%10);ca=numero.value.substring(11);if(cc==ca){alert("EAN-12 válido");}else{alert("Digite um código EAN válido");}}if(((((numlen!=8)&&(numlen!=12))&&(numlen!=13))&&(numlen!=14))){alert("Digite um código EAN válido");}}</script><formname="frm"id="frm">CódigoEAN:<inputtype="text"size="16"maxlength="14"name="numero"/><br/><inputtype="button"onClick="ValidaEan(frm.numero);"value="VALIDAR"/></form>
A
akelekara1 like
Segue um método refatorado para validação escrito em Java
public boolean validaCodigoEAN(String codigo) {
if(StringUtils.isNotBlank(codigo)
&& (codigo.length() == 8
|| codigo.length() == 12
|| codigo.length() == 13
|| codigo.length() == 14)){
int factor = 3;
int sum = 0;
for (int index = codigo.length()-1; index > 0; --index) {
int mult = Integer.valueOf(codigo.substring(index-1, index));
sum = sum + mult * factor;
factor = 4 - factor;
}
int cc = ((1000 - sum) % 10);
int ca = Integer.valueOf(codigo.substring(codigo.length()-1));
if (cc == ca)
return Boolean.TRUE;
}
return Boolean.FALSE;
}