2
Does anyone know how I can validate the CIE (Foreign Identity Card) or RNE (National Aliens Registry) number? I believe there are two names.
Language-independent.
2
Does anyone know how I can validate the CIE (Foreign Identity Card) or RNE (National Aliens Registry) number? I believe there are two names.
Language-independent.
0
I solved RG / RNE validation and formatting with this code:
function formatarRG(input, teclapres) {
var numeroRG = input.value.trim().toUpperCase().replace(/[^\dX]/g, '');
var numeroRNE = input.value.trim().toUpperCase();
if (numeroRNE.substring(0, 3) == 'R' || numeroRNE.substring(0, 3) == 'RN' || numeroRNE.substring(0, 3) == 'RNE') {
input.value = numeroRNE.replace(/^(RNE)(\w)(\d{6})(\w)$/, '$1$2$3$4');
} else {
if ((numeroRG.length == 8 || numeroRG.length >= 9) &&
(numeroRG.substring(0, 8) == '00000000' ||
numeroRG.substring(0, 8) == '11111111' ||
numeroRG.substring(0, 8) == '22222222' ||
numeroRG.substring(0, 8) == '33333333' ||
numeroRG.substring(0, 8) == '44444444' ||
numeroRG.substring(0, 8) == '55555555' ||
numeroRG.substring(0, 8) == '66666666' ||
numeroRG.substring(0, 8) == '77777777' ||
numeroRG.substring(0, 8) == '88888888' ||
numeroRG.substring(0, 8) == '99999999')) {
alert("ATENÇÃO! Número do RG inválido, digite novamente. ");
input.value = '';
input.focus();
return false;
} else {
input.value = (numeroRG.length == 8 ? numeroRG.replace(/^(\d{1,2})(\d{3})(\d{3})$/, '$1.$2.$3') : numeroRG.replace(/^(\d{1,2})(\d{3})(\d{3})([\dX])$/, '$1.$2.$3-$4'));
if (numeroRG.length >= 9 && !verificaRG(numeroRG)) {
alert("ATENÇÃO! O dígito verificador do Número do RG está inválido, o correto é "+ RetornarDigitoVerificadorRG(numeroRG));
input.value = input.value.substring(0, 11) + RetornarDigitoVerificadorRG(numeroRG);
input.focus();
return false;
}
}
}
return input.value;
}
function validarRG(input) {
var numero = input.value.trim().toUpperCase();
if ((numero.substring(0, 3) == 'RNE' && numero.match(/^(RNE)(\w)(\d{6})(\w)$/) == null) ||
(numero != '' && numero.length < 8) ||
((numero != '' && numero.length > 1) &&
(numero.substring(0, 8) == '00000000' ||
numero.substring(0, 8) == '11111111' ||
numero.substring(0, 8) == '22222222' ||
numero.substring(0, 8) == '33333333' ||
numero.substring(0, 8) == '44444444' ||
numero.substring(0, 8) == '55555555' ||
numero.substring(0, 8) == '66666666' ||
numero.substring(0, 8) == '77777777' ||
numero.substring(0, 8) == '88888888' ||
numero.substring(0, 8) == '99999999'))) {
alert("ATENÇÃO! Número do RG inválido, digite novamente.");
input.value = '';
input.focus();
return false;
} else return true;
}
function verificaRG(value) {
// Regra encontrada no site: https://www.ngmatematica.com/2014/02/como-determinar-o-digito-verificador-do.html
var numeroRG = value.trim().toUpperCase();
var numero = numeroRG.split("");
var total = 0;
var resto = 0;
var digito = 0;
var resultado = true;
if (numeroRG != "") {
total = (parseInt(numero[0])*2)+(parseInt(numero[1])*3)+(parseInt(numero[2])*4)+(parseInt(numero[3])*5)+(parseInt(numero[4])*6)+(parseInt(numero[5])*7)+(parseInt(numero[6])*8)+(parseInt(numero[7])*9);
resto = total % 11;
digito = 11 - resto;
if (numero.length >= 9) {
if (numero[8] == 'X')
resultado = (digito == 10);
else if (numero[8] == '0')
resultado = (digito == 11);
else
resultado = parseInt(numero[8]) == digito;
}
} else
resultado = false;
return resultado;
}
// No seu HTML
<label for="colaborador.numeroDoRG.rotulo"><fmt:message key="colaborador.numeroDoRG.rotulo" />:</label>
<input type="text" tabindex="2" name="colaborador.numeroDoRG" id="colaborador.numeroDoRG" maxlength="12" size="20" class="campo uppercase" onKeyUp="return formatarRG(this, event);" onBlur="return validarRG(this);"/>
<br/>
I hope it helps you...
Browser other questions tagged php javascript java c# validation
You are not signed in. Login or sign up in order to post.
I don’t understand how you differ from RG RNE. It seems to do the same validation for both. Can you give details? Thank you.
– Bruno Toffolo