nif-dni-nie-cif-validation
is a JS and TS library that makes everything related
with NIF (spanish identifiers) easier.
Feel like supporting this free plugin?
Table of Contents
npm install --save nif-dni-nie-cif-validation
or
yarn add nif-dni-nie-cif-validation
Import and use as follow with ES6 syntax:
import { isValidNif } from "nif-dni-nie-cif-validation";
console.log(isValidNif("36698729K")) // true
console.log(isValidNif("9332057M")) // false
For previous versions use require
as follows:
const { isValidNif } = require("nif-dni-nie-cif-validation")
console.log(isValidNif("36698729K")) // true
console.log(isValidNif("9332057M")) // false
The following sections cover all the features and utilities of this package.
Function | Description | Expects inputs | Valid examples |
---|---|---|---|
isValidNif |
Checks if the given nif (legal entity NIF or natural person NIF (DNI, DNI K, DNI L, DNI M, or NIE)) is valid. | /^([KLMXYZ][\d]{7}|[\d]{8})[TRWAGMYFPDXBNJZSQVHLCKE]$/i or /^[ABCDEFGHJNPQRSUVW][\d]{7}[\dA-J]$/i |
57655929N K0867756N Z9332057L A07727886 |
isValidNaturalPersonNif |
Checks if the given naturalPersonNif is whether a valid DNI (including DNI K, L and M) or a valid NIE. | /^([KLMXYZ][\d]{7}|[\d]{8})[TRWAGMYFPDXBNJZSQVHLCKE]$/i |
57655929N K0867756N Z9332057L |
isValidDni |
Checks if the given dni is valid. It does include checks for DNI K, L and M. | /^([KLM][\d]{7}|[\d]{8})[TRWAGMYFPDXBNJZSQVHLCKE]$/i |
57655929N K0867756N |
isValidNie |
Checks if the given nie is valid. | /^[XYZ][\d]{7}[TRWAGMYFPDXBNJZSQVHLCKET]$/i |
Z9332057L X9864761S Y2541026T |
isValidLegalEntityNif |
Checks if the legalEntityNif (old known as CIF) provided is valid. It does not include old K, L and M formats. | /^[ABCDEFGHJNPQRSUVW][\d]{7}[\dA-J]$/i |
A07727886 E05070164 J34790493 |
isValidCif |
Same as isValidLegalEntityNif |
Same as isValidLegalEntityNif |
Same as isValidLegalEntityNif |
Function | Description | Expected inputs | Valid examples |
---|---|---|---|
isValidDniLetter |
Checks if the dni control code (letter) provided is valid. It does include checks for DNI K, L and M. (WARNING!: It does not check the DNI_REGEX .) |
/^([KLM][\d]{7}|[\d]{8})[TRWAGMYFPDXBNJZSQVHLCKE]$/i |
57655929N K0867756N |
replaceNieLetter |
Returns a new string with the nie letter (XYZ) replaced. However it will throw an error if the first character is not X, Y or Z. | /^[XYZ][\d]{7}[TRWAGMYFPDXBNJZSQVHLCKET]$/i |
Z9332057L X9864761S Y2541026T |
isValidLegalEntityNifControlCode |
Checks if the legal entity nif (old known as CIF) control code (letter or number) provided is valid. (WARNING!: It does not check the LEGAL_ENITY_NIF_REGEX .) |
/^[ABCDEFGHJNPQRSUVW][\d]{7}[\dA-J]$/i |
A07727886 E05070164 J34790493 |
isValidCifControlCode |
Same as isValidLegalEntityNifControlCode |
Same as isValidLegalEntityNifControlCode |
Same as isValidLegalEntityNifControlCode |
Name | Type | Description |
---|---|---|
DNI_CONTROL_LETTERS |
string |
Contains all the control letters available for a valid DNI. |
DNI_REGEX |
RegExp |
Pattern that must match a valid DNI, however it does not includes control letter validation. Use isValidDni instead for full validation. |
NIE_REGEX |
RegExp |
Pattern that must match a valid NIE, however it does not includes control letter validation. Use isValidNie instead for full validation. |
LEGAL_ENTITY_CONTROL_LETTERS |
string |
Contains all the control letters available for a valid legal entity NIF (old known as CIF). Remember that may include numbers for the control characters, so this does not cover all posibilities. |
CIF_CONTROL_LETTERS |
string |
Same as LEGAL_ENTITY_CONTROL_LETTERS . |
LEGAL_ENTITY_NIF_REGEX |
RegExp |
Pattern that must match a valid legal entity NIF, however it does not includes control character validation. Use isValidLegalEntityNif instead for full validation. |
CIF_REGEX |
RegExp |
Same as LEGAL_ENTITY_NIF_REGEX . |
CIF was a legal entity id used in Spain up to 2008. However, nowadays it's renamed to legal entity NIF, and some old formats like those who starts with L, K and M letters are not described by legal authorities (at least what I found, if you find more information about it, please feel free to comment, make a pull or open an issue).
Nevertheless, this library also exports isValidLegalEntityNif
renamed to isValidCif
, and all related terms with it to make easier to those who need it.