function validarDNI(valor) { var dni = /^([0-9]{8,8}[a-zA-Z])$/; if (! dni.test(valor)) return false; var letras = 'T,R,W,A,G,M,Y,F,P,D,X,B,N,J,Z,S,Q,V,H,L,C,K,E,T'.split(','); var pos = valor.substr(0,valor.length-1) % 23 var letra = valor.substr(valor.length-1,valor.length); if (letra.toUpperCase() == letras[pos]) return true; return false; } function validarNIE(valor) { var nie = /^([xyzXYZ][0-9]{7,7}[a-zA-Z])$/; if (! nie.test(valor)) return false; var letras = 'T,R,W,A,G,M,Y,F,P,D,X,B,N,J,Z,S,Q,V,H,L,C,K,E,T'.split(','); var inicial = valor.substr(0, 1).toUpperCase(); if (inicial == 'X') valor = '0' + valor.substr(1); if (inicial == 'Y') valor = '1' + valor.substr(1); if (inicial == 'Z') valor = '2' + valor.substr(1); var pos = valor.substr(0, valor.length-1) % 23; var letra = valor.substr(valor.length-1, 1); if (letra.toUpperCase() == letras[pos]) { return true; } return false; } function validarCIF(texto){ var pares = 0; var impares = 0; var suma; var ultima; var unumero; var uletra = new Array("J", "A", "B", "C", "D", "E", "F", "G", "H", "I"); var xxx; texto = texto.toUpperCase(); var regular = new RegExp(/^[ABCDEFGHJKLMNPRQSUVWabcdefghjklmnprqsuvw]\d\d\d\d\d\d\d[0-9,A-J]$/g); if (!regular.exec(texto)) return false; ultima = texto.substr(8,1); for (var cont = 1 ; cont < 7 ; cont ++){ xxx = (2 * parseInt(texto.substr(cont++,1))).toString() + "0"; impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1)); pares += parseInt(texto.substr(cont,1)); } xxx = (2 * parseInt(texto.substr(cont,1))).toString() + "0"; impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1)); suma = (pares + impares).toString(); unumero = parseInt(suma.substr(suma.length - 1, 1)); unumero = (10 - unumero).toString(); if(unumero == 10) unumero = 0; if ((ultima == unumero) || (ultima == uletra[unumero])) return true; else return false; } function validarDOC(valor) { var dni = /^([0-9]{8,8}[a-zA-Z])$/; var cif = /^([ABCDEFGHJKLMNPQSabcdefghjklmnpqs][0-9]{7,7}[0-9A-J])$/; var nie = /^([xyzXYZ][0-9]{7,7}[a-zA-Z])$/; if(cif.test(valor)) return validarCIF(valor); else if(nie.test(valor)) return validarNIE(valor); else if(dni.test(valor)) return validarDNI(valor); return false; } function validarTipoFichero (valor, formatos) { var formatoValido = false; if ((formatos == null) || (formatos == "")) formatos = "DOC|DOCX|PDF|RTF|TXT"; aFormatos = formatos.split("|"); var extension = valor.substr(valor.lastIndexOf(".")+1); extension = extension.toUpperCase(); var q = 0; while ((formatoValido == false) && (q < aFormatos.length)) { if (aFormatos[q] == extension) formatoValido = true; q++; } return formatoValido; } jQuery.validator.addMethod("TFN", function(phone_number, element) { phone_number = phone_number.replace(/\s+/g, ""); return this.optional(element) || phone_number.length > 8 && phone_number.match(/^[6789]{1}[0-9]{8}$/); }); jQuery.validator.addMethod("CP", function(value, element) { return this.optional(element) || /^[0-9]{5}$/.test(value); }); jQuery.validator.addMethod("DOC", function(value, element) { return this.optional(element) || validarDOC(value); }); jQuery.validator.addMethod("CLAVE", function(clave, element) { return this.optional(element) || clave.length >= 6 && clave.match(/^[\S]+$/); }); jQuery.validator.addMethod("FILE", function(value, element) { return this.optional(element) || validarTipoFichero(value,null); }); jQuery.validator.messages.required = ""; jQuery.validator.messages.email = ""; jQuery.validator.messages.number = ""; jQuery.validator.messages.equalTo = ""; jQuery.validator.messages.TFN = ""; jQuery.validator.messages.CP = ""; jQuery.validator.messages.DOC = ""; jQuery.validator.messages.CLAVE = ""; jQuery.validator.messages.FILE = ""; jQuery.validator.messages.date = ""; jQuery.validator.defaults.errorClass = "error"; jQuery.validator.messages.errorAlert=''; jQuery.validator.messages.noLoginAlert='';