fitorec / RFC_herramientas_web

Validación de un RFC por medio de PHP
16 stars 2 forks source link

Registro Federal de Contribuyentes (RFC) Herramientas web.

Herramientas para el manejo del RFC en el desarrollo web, estas actualmente consta 2.

Validación del Registro Federal de Contribuyentes (RFC).

El RFC es una clave que tiene toda Persona física en México que realice alguna actividad licita que este obligada a pagar impuestos o toda Persona moral sin excepción (contribuyentes):¬S.

Esta clave se genera con 10 caracteres alfanuméricos obtenidos de los datos personales del contribuyente o persona física como su nombre y fecha de nacimiento; o nombre y fecha de origen de la persona moral.

Más los 4 dígitos se le conoce como homoclave, esta la designa el SAT, dependiendo de algunos factores que realiza el SAT, la regla de validación quedaría como.

Nota: Los caracteres deben de estar en mayúsculas sin acentos ni diéresis.

Y se determina de la siguiente manera:

Por ejemplo para el VECJ880326 XXXX

Sección Nombre

Los 4 primeros dígitos son:

De no existir algun apellido se utiliza una (X).

Por el momento una expresión de validación seria:

^[a-z]{4}

Sección Fecha de nacimiento

La siguiente parte le corresponde a la fecha de nacimiento la cual esta dividido en:

Sección homoclave

Los últimos 4 dígitos(XXXX) es la homoclave, la cual se puede validar como:

[a-z0-9]{4} 

Finalmente la expresión de validación para una RFC con homoclave seria:

^[A-Z]{4}([0-9]{2})(1[0-2]|0[1-9])([0-3][0-9])([ -]?)([A-Z0-9]{4})$

Un poco de PHP.

<?php
/**
 * Valida un RFC
 *
 * @param string $rfc a validar
 * @return multiple int 1 si el $rfc es valido 0 si no. boolean FALSE si sucede un error.
 * @link http://php.net/manual/en/function.preg-match.php
 */
function validarRFC($rfc)
    $regex = '/^[A-Z]{4}([0-9]{2})(1[0-2]|0[1-9])([0-3][0-9])([ -]?)([A-Z0-9]{4})$/';
    return preg_match($regex, $rfc);
}//fin función

/* probando la validacion */
if( validarRFC('VECJ880326 XXXX') ) {
    echo 'RFC <b>VECJ880326 XXXX</b> Valido';
} else {
    echo 'RFC <b>VECJ880326 XXXX</b> inValido';
}

Puedes correr el siguiente Ejemplo de prueba:

JQuery Plugin generador de RFC.

Uso:

$('#mi_rfc_input').RFC();

Nota: Este plugin esta pendiente.