function FechaOK(fecha) { var dd="", mm="", aa="", car, control=0; for(var i=0; i"9") control++; else { switch(control) { case 0: dd=dd+car; //dia break; case 1: mm=mm+car; //mes break; case 2: aa=aa+car; //año break; } } } if (dd.length==0 || mm.length==0 || aa.length==0 || dd.length>2 || mm.length>2 || aa.length==1 || aa.length==3 || aa.length>4 || control>2) return(false); if(dd<1 || dd>31) return(false); if(mm<1 || mm>12) return(false); if((mm=="4" || mm=="04" || mm=="6" || mm=="06" || mm=="9" || mm=="09" || mm=="11") && (dd>30)) return(false); if((aa%4)==0) { //Año bisiesto if(mm==2 && dd>29) return(false); } else if(mm==2 && dd>28) return(false); return(true); // No hay error! } function PreFmtHora(hr) { var ret=""; if(hr.indexOf(":")>0) return(hr); if(hr.length==0) return(ret); if(hr.length==1 || hr.length==2) ret=hr+":00"; else if(hr.length==3) { ret=ret+hr.substring(0,1); ret=ret+":"; ret=ret+hr.substring(1,3); } else if(hr.length==4) { ret=ret+hr.substring(0,2); ret=ret+":"; ret=ret+hr.substring(2,4); } else if(hr.length==5) { ret=ret+hr.substring(0,2); ret=ret+":"; ret=ret+hr.substring(3,5); } return(ret); } function HoraOK(h) { h=PreFmtHora(h); var hh="", mm="", result=""; var ind=h.indexOf(":"); // Se buscan los dos puntos hh=h.substring(0, ind); if (hh.length==0 || hh.length>2) return(false); if (hh.length==1) hh="0"+hh; mm=h.substring(ind+1, h.length); if (mm.length==0 || mm.length>2) return(false); if (mm.length==1) mm="0"+mm; if (!EsNumerico(hh) || !EsNumerico(mm)) return(false); if (hh>23 || mm>59) return(false); result=hh+":"+mm; return(result); } /////////////////////////////////////////////////////////////////////// // SI f1 < f2 DEVUELVE 1, SI f1 > f2 DEVUELVE 2, SI f1=f2 DEVUELVE 0 // /////////////////////////////////////////////////////////////////////// function CmpFechas(d1, m1, a1, d2, m2, a2) { if(a1a2) return(2); if(m1m2) return(2); if(d1d2) return(2); if(d1==d2) return(0); } ///////////////////////////////////// // SI [f1,h1] < [f2,h2] DEVUELVE 1 // // SI [f1,h1] > [f2,h2] DEVUELVE 2 // // SI [f1,h1] = [f2,h2] DEVUELVE 0 // ///////////////////////////////////// function CmpFechasHoras(f1, h1, f2, h2) { var d1="", d2="", m1="", m2="", a1="", a2=""; var hh1="", mm1="", hh2="", mm2=""; d1=f1.substring(0,2); d2=f2.substring(0,2); m1=f1.substring(3,5); m2=f2.substring(3,5); a1=f1.substring(6,10); a2=f2.substring(6,10); hh1=h1.substring(0,2); hh2=h2.substring(0,2); mm1=h1.substring(3,5); mm2=h2.substring(3,5); if(a1a2) return(2); if(m1m2) return(2); if(d1d2) return(2); if(hh1hh2) return(2); if(mm1mm2) return(2); if(mm1==mm2) return(0); } function rellenaConCeros(cad, lon) { if (cad.length==0) return cad; for(var i=cad.length;i='0' && cad.charAt(i)<='9') && !( (cad.charAt(i)>='A' && cad.charAt(i)<='Z') || cad.charAt(i)=='Ñ' || cad.charAt(i)=='Ç') ) { return false; } } return true; } function ContieneProhibidas(cadena) { for (var i=0; i" || cadena.substring(i,i+5)==".asp?" ) { return true; } } return false; } // Comprueba si el caracter c está en la cadena cad function EstaEnCadena(cad, c) { for (var i=0; i='0' && cad.charAt(i)<='9') ) { return false; } } return true; } function EsEmailOK(email) { var indice; if (email=="") return(true); //Si es vacío se considera correcto indice=email.indexOf("@"); if (indice==-1) return(false); //Si no contiene el símbolo '@' es erróneo indice=email.indexOf("."); if (indice==-1) return(false); //Si no contiene el símbolo '.' es erróneo return(true); } function EsNif(f) { f=mayus(f); for(var i=0;i='0' && f.charAt(i)<='9')) { return false; } } if(!((f.charAt(f.length-1)>='A' && f.charAt(f.length-1)<='Z')||f.charAt(f.length-1)=='Ñ' ||f.charAt(f.length-1)=='Ç')) { return false; } return true; } function CalculaLetraNif(f) { letras="TRWAGMYFPDXBNJZSQVHLCKET"; dni=f.substring(0,f.length-1); letra_nif=letras.charAt(eval(dni%23)); return letra_nif; } function EsNifOK(f) { if (!EsNif(f)) return false; if (CalculaLetraNif(f)!=f.charAt(f.length-1)) { alert("Letra introducida: "+f.charAt(f.length-1)+"\nLetra correcta: "+CalculaLetraNif(f)); return false; } return true; } function EsLongitudValida(micadena,longminima,longmaxima) { if (micadena.lengthlongmaxima) return false; return true; } function EsIdCorrecto(tipoid, id) { //alert("Tipo: "+tipoid+"\nId: "+id); if (!EsLongitudValida(id,6,13)) return false; if (!EsAlfaNumerico(id)) return false; if (tipoid=="N") { if (!EsNifOK(id)) return false; } return true; } function ContieneComillas(cad) { for(var i=0;i='0' && cad.charAt(i)<='9') || cad.charAt(i)==' ') ) { return false; } } return true; } function EsIPOk(cad) { for(var i=0;i='0' && cad.charAt(i)<='9') || cad.charAt(i)=='.') ) { return false; } } return true; } ///////////////////////////////////////////////////////////////////// // Función que comprueba si la cadena representa un número decimal // ///////////////////////////////////////////////////////////////////// function EsDecimal(n) { // Si es vacío, se acepta for(var i=0; i"9") && car!="," && car!=".") { return(false); } } return(true); } //////////////////////////////////////////////////////////////////// // Función que comprueba si la cadena representa un número entero // //////////////////////////////////////////////////////////////////// function EsEntero(n) { for(var i=0; i"9") { return(false); } } return(true); } function Redondear(n) { var i, car, r = n; var encontrado = -1; var decimales; // Busco la coma o punto decimal if (n=="") return(true); for(i=0; i=5) { if (parseInt(decim12)<99) { decim12 = parseInt(decim12) + 1; r = entero + "," + decim12.toString(); } else { entero = parseInt(entero) + 1; r = entero.toString() + ",00"; } } else r = entero + "," + decim12; } } } return r; } function EsImporteOk(i) { var ok = true; if (!EsDecimal(i.value)) ok = false; else { var aux = Redondear(i.value); if (aux == "-1") ok = false; else i.value = aux; } if (ok == false) { alert ("Importe incorrecto"); i.value = "0,00"; i.focus(); i.select(); } return (ok); } function PuntoDecimal(cad) { var lon=cad.length; var indice=cad.indexOf(","); if (indice==-1) return(cad); else { cad=cad.substring(0,indice)+"."+cad.substring(indice+1,lon); return(cad); } } function ComaDecimal(cad) { var lon=cad.length; var indice=cad.indexOf("."); if (indice==-1) return(cad); else { cad=cad.substring(0,indice)+","+cad.substring(indice+1,lon); return(cad); } } function esIMEI (s) { var etal = /^[0-9]{15}$/; if (!etal.test(s)) return false; sum = 0; mul = 2; l = 14; for (i = 0; i < l; i++) { digit = s.substring(l-i-1,l-i); tp = parseInt(digit,10)*mul; if (tp >= 10) sum += (tp % 10) +1; else sum += tp; if (mul == 1) mul++; else mul--; } chk = ((10 - (sum % 10)) % 10); return true; if (chk != parseInt(s.substring(14,15),10)) return false; return true; } function EsCodPostal(cp) { if (cp=="") return(true); //Si es vacío se considera correcto if (cp.length!=5) return(false); //si la longitud no es 5 es erróneo for (var i=0; i='0' && cp.charAt(i)<='9')) return(false); } return(true); }