Subversion-Projekte lars-tiefland.marine-sales.de

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

/*
 * 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." );