Coder Social home page Coder Social logo

validate-rfc's Introduction

Validate RFC

Una librería sencilla y ligera para validar RFCs Mexicanos (Registro Federal de Contribuyentes).

Instalación

Usa NPM o YARN:

$ npm install validate-rfc

API

La librería expone una sola función (.validateRfc).

.validateRfc(rfc)

Valida que un string sea un RFC válido y entrega detalles sobre la validación.

Parámetros

Parámetro Tipo Descripción
rfc String El RFC a validar.

Respuesta

Regresa un objeto plano con los siguientes valores:

Parámetro Tipo Descripción
isValid Boolean Indica si el string ingresado es un RFC válido.
rfc String El RFC formateado (en mayúsculas, sin espacios ni simbolos). Regresa null en caso de que el RFC sea inválido.
type String El tipo del RFC ingresado. Los valores pueden ser person para personas físicas, company para personas morales, generic para el RFC genérico "XAXX010101000" o foreign para el RFC "XEXX010101000" para residentes en el extranjero. Regresa null en caso de que el RFC sea inválido.
errors Array[String] En caso de que el RFC no sea válido, aquí se indican los motivos por los que no fue válido.

Los posibles valores que puede contener errors y su descripción son:

Error Descripción
INVALID_FORMAT El formato es inválido, es decir, no cuenta con la longitud o estructura de caracteres esperado. Ej: XYZ porque claramente no es un RFC.
INVALID_DATE El string tiene el formato adecuado, pero los dígitos para la fecha generan una fecha inválida. Ej: MHTR815511A70 porque refiere al mes 55.
INVALID_VERIFICATION_DIGIT El string tiene el formato adecuado, pero el último caracter (dígito verificador) es inválido. Ej: MHTR810511A79 termina en 9 pero se espera que termine en 2.

Ejemplo

const validateRfc = require('validate-rfc');

const response = validateRfc('mhtr93041179a');
console.log(response);

/*
Imprime:

{
  isValid: true,
  rfc: 'MHTR93041179A',
  type: 'person'
}

*/

const response = validateRfc('Este no es un RFC');
console.log(response);

/*
Imprime:

{
  isValid: false,
  rfc: null,
  type: null,
  errors: ['INVALID_FORMAT']
}

*/

Pruebas

Para correr las pruebas ejecuta el comando:

$ npm test

Licencia

MIT

validate-rfc's People

Contributors

manuelmhtr avatar carlosrivera avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.