Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
validate-curp
Advanced tools
A simple and lightweight library to validate Mexican CURPs (Personal ID).
Use NPM:
$ npm install --save validate-curp
Or YARN:
$ yarn add validate-curp
Add the script to your project:
<!-- Latest version -->
<script src="https://cdn.jsdelivr.net/gh/manuelmhtr/validate-curp@latest/dist/index.js" type="text/javascript"></script>
<!-- Or specify a version -->
<script src="https://cdn.jsdelivr.net/gh/manuelmhtr/validate-curp@v1.0.0/dist/index.js" type="text/javascript"></script>
<!-- This will export a global function "validateCurp": -->
<script type="text/javascript">
var data = validateCurp('motr930411hjcrmn03');
console.log(data);
</script>
The library only exposes a single function (.validateCurp
).
Checks whether a string is a valid CURP and returns validation details.
Parameters
Parameter | Type | Description |
---|---|---|
curp | String | The CURP to be validated. |
options | Object | Settings (Optional). |
Response
It returns a plain object with the values:
Parameter | Type | Description |
---|---|---|
isValid | Boolean | Indicates if the string is a valid CURP. |
curp | String | The formatted CURP (uppercase, with no white spaces or symbols). Returns null when input is an invalid CURP. |
errors | Array[String] | In case the CURP is invalid, the reasons why the CURP is invalid will be listed here. |
Possible errors
values and they description are:
Error | Descripción |
---|---|
INVALID_FORMAT | The format is invalid, that means, the string does not meet with the required length or expected structure. Eg: XYZ because clearly is not an CURP. |
INVALID_DATE | The string may have the correct format, but digits generate an invalid date. Eg: MOTR935511HJCRMN03 because it refers to month 55 . |
INVALID_STATE | The string may have the correct format, but letters for state don't match with a valid one. Eg: MOTR9390411HXXRMN03 because it refers to state XX , which does not exist. See the valid states list here. |
INVALID_CHECK_DIGIT | The string has a valid format, but the last character (check digit) is invalid. Eg: MOTR930411HJCRMN09 ends with 9 but it is expected to end with 3 . |
FORBIDDEN_WORD | The string contains one of the inconvenient words that cannot be included in a CURP. Eg: FETO930411HJCRMN03 the initials make the word FETO (fetus, LOL). Find the full list of words in this document. |
Example
const validateCurp = require('validate-curp');
const response = validateCurp('motr930411hjcrmn03');
console.log(response);
/*
Prints:
{
isValid: true,
curp: 'MOTR930411HJCRMN03'
}
*/
const response = validateCurp('This is not a CURP');
console.log(response);
/*
Prints:
{
isValid: false,
curp: null,
errors: ['INVALID_FORMAT']
}
*/
Run the test with the command:
$ yarn test
MIT
[1.0.0] - 2022-07-24
FAQs
A simple library to validate Mexican CURPs (Personal ID)
The npm package validate-curp receives a total of 228 weekly downloads. As such, validate-curp popularity was classified as not popular.
We found that validate-curp demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.