Blame | Letzte Änderung | Log anzeigen | RSS feed
/** Brazillian CNH number (Carteira Nacional de Habilitacao) is the License Driver number.* CNH numbers have 11 digits in total: 9 numbers followed by 2 check numbers that are being used for validation.*/$.validator.addMethod( "cnhBR", function( value ) {// Removing special characters from valuevalue = value.replace( /([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g, "" );// Checking value to have 11 digits onlyif ( value.length !== 11 ) {return false;}var sum = 0, dsc = 0, firstChar,firstCN, secondCN, i, j, v;firstChar = value.charAt( 0 );if ( new Array( 12 ).join( firstChar ) === value ) {return false;}// Step 1 - using first Check Number:for ( i = 0, j = 9, v = 0; i < 9; ++i, --j ) {sum += +( value.charAt( i ) * j );}firstCN = sum % 11;if ( firstCN >= 10 ) {firstCN = 0;dsc = 2;}sum = 0;for ( i = 0, j = 1, v = 0; i < 9; ++i, ++j ) {sum += +( value.charAt( i ) * j );}secondCN = sum % 11;if ( secondCN >= 10 ) {secondCN = 0;} else {secondCN = secondCN - dsc;}return ( String( firstCN ).concat( secondCN ) === value.substr( -2 ) );}, "Please specify a valid CNH number" );