first commit
This commit is contained in:
39
plugins/jquery-validation/additional/nieES.js
vendored
Normal file
39
plugins/jquery-validation/additional/nieES.js
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* The NIE (Número de Identificación de Extranjero) is a Spanish tax identification number assigned by the Spanish
|
||||
* authorities to any foreigner.
|
||||
*
|
||||
* The NIE is the equivalent of a Spaniards Número de Identificación Fiscal (NIF) which serves as a fiscal
|
||||
* identification number. The CIF number (Certificado de Identificación Fiscal) is equivalent to the NIF, but applies to
|
||||
* companies rather than individuals. The NIE consists of an 'X' or 'Y' followed by 7 or 8 digits then another letter.
|
||||
*/
|
||||
$.validator.addMethod( "nieES", function( value, element ) {
|
||||
"use strict";
|
||||
|
||||
if ( this.optional( element ) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
var nieRegEx = new RegExp( /^[MXYZ]{1}[0-9]{7,8}[TRWAGMYFPDXBNJZSQVHLCKET]{1}$/gi );
|
||||
var validChars = "TRWAGMYFPDXBNJZSQVHLCKET",
|
||||
letter = value.substr( value.length - 1 ).toUpperCase(),
|
||||
number;
|
||||
|
||||
value = value.toString().toUpperCase();
|
||||
|
||||
// Quick format test
|
||||
if ( value.length > 10 || value.length < 9 || !nieRegEx.test( value ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// X means same number
|
||||
// Y means number + 10000000
|
||||
// Z means number + 20000000
|
||||
value = value.replace( /^[X]/, "0" )
|
||||
.replace( /^[Y]/, "1" )
|
||||
.replace( /^[Z]/, "2" );
|
||||
|
||||
number = value.length === 9 ? value.substr( 0, 8 ) : value.substr( 0, 9 );
|
||||
|
||||
return validChars.charAt( parseInt( number, 10 ) % 23 ) === letter;
|
||||
|
||||
}, "Please specify a valid NIE number." );
|
||||
Reference in New Issue
Block a user