// 27. FUNCIÓN jsTrim - Quita los espacios a la derecha y a la izquierda de la cadena de texto pasada, además de los espacios duplicados. // 28. FUNCIÓN jsQuitarAlta - Quitará el valor JSQuitar del valor JSValor // 29. FUNCIÓN jsSoloDigitos: Comprueba que la cadena pasada sólo contenga dígitos // 30. FUNCIÓN jsSoloAlfa: Comprueba que la cadena pasada sólo contenga caracteres alfa numéricos y espacios //FUNCIONES STRING function Importe2decimal(Total) // IE & NS6 { var Totaltext=String(Total); var enteros = Totaltext.lastIndexOf( "," ); //La coma es la separación entre enteros y decimales var textoenteros=Totaltext.substr(0,enteros); //Cogemos la parte entera if (Totaltext.substr(enteros+3,1)<=4) { //Truncamos a 2 decimales Totaltext=Totaltext+"00"; //Añadimos los 0's para tener 2 decimales siempre p.e si fuese 1,5=>1,500 y al truncar pasaría a 1,50 valor = textoenteros+Totaltext.substr(enteros, 1) + Totaltext.substr(enteros+ 1, 2); } else { //Redondeamos al alza (sumamos 0.01 y truncamos a 2 decimales) var numsum=Totaltext.substr(enteros+ 1, 2); //Cogemos 2 primeros decimales while ( textoenteros.lastIndexOf( "." )!=-1) var textoenteros=textoenteros.replace(".", ""); //Eliminamos los puntos de los miles valor=String((((parseFloat(textoenteros)*100)+parseFloat(numsum))+1)/100); //Sumamos 0.01 //Cambiamos el punto (.) por coma (,) enteros = valor.lastIndexOf( "." ); if (enteros!=-1) { valor=valor+"00"; valor=valor.substr(0,enteros)+","+valor.substr(enteros+1,2); } else { //En este caso no tiene decimales, le añadimos 2 decimales valor=valor+",00"; } valor=ImportePuntuacion(valor); //Colocamos los puntos de los millares } return valor } function ImportePuntuacion(Total) // IE & NS6 { var Totaltext=String(Total); while (Totaltext.indexOf(".")!=-1) { Totaltext=Totaltext.replace(".",""); //Elimino los puntos de los millares i substituyo la coma decimal } Totaltext=Totaltext.replace(",","."); //por un punto para que pueda sumar bien en JS. Totaltext=Totaltext.replace(".",","); //Vuelvo a poner "," para los decimales var inenteros = Totaltext.lastIndexOf( "," ); // i puntos en los millares if (inenteros==-1) inenteros=Totaltext.length; var enteros=Totaltext.substring(0,inenteros); var indice=enteros.length-3*Math.floor(enteros.length/3); var valor = Totaltext.substring(0,indice); for (i=0;i*3+1"9") { num = 0; } i++; } return(num); } function IsNumber(campo) // IE & NS6 { var str = campo.value; var num = 1; var i = 0; while ((i"9") { num = 0; } i++; } return(num); } function Trim(inputstringTrim) // IE & NS6 { fixedTrim = ""; lastCh = " "; for(x =0; x < inputstringTrim.length; x++) { ch = inputstringTrim.charAt(x); if ((ch != " ") || (lastCh != " ")) { fixedTrim += ch; } lastCh = ch; } if (fixedTrim.charAt(fixedTrim.length - 1) == " ") { fixedTrim = fixedTrim.substring(0, fixedTrim.length - 1); } return fixedTrim; } // Fin función trim function WebUnicode2string(entrada) { var salida=""; var letra=""; var numero = entrada.indexOf("."); var entradados= entrada.substring(numero+1 , entrada.length); while (entradados!="") { numero = entradados.indexOf("."); letra = entradados.substring(0, numero); salida = salida + String.fromCharCode (letra) entradados= entradados.substring(numero+1 , entradados.length); } return(salida); } function Webstring2Unicode(entrada) { var salida=""; for( i=0 ; i= 0 && anys < 10 ) { any = "200" + any; } else if ( anys >= 10 && anys < 50 ) { any = "20" + any; } else if ( anys >= 50 && anys <= 99 ) { any = "19" + any; } datadia=new Date(any,mes-1,dia,00,00,00); return(datadia) } function fechaanterior(fecha) { diafecha=fechaJS(fecha); diahoy=new Date(); // Si es fa new Date sens parametres retorna un obj. data amb el moment actual return (diafecha 9000 || mes < 1 || mes > 12 || dia < 1 ) return( true ); if ( dia > diasmes[ mes-1 ] ) return( true ); if ( mes == 2 ) //Mes de febrero { if ( ( any % 4 == 0 ) && ( ( any % 100 != 0 ) || ( any % 400 == 0 ) ) ) { //Es bisiesto if ( dia > 29 ) return( true ); } else { //No es bisiesto if ( dia > 28 ) return( true ); } } dias = String( dia ); mess = String( mes ); anys = String( any ); if ( any >= 100 && any < 1900 ) { return(true); } if ( dia < 10 ) { dias = "0" + dias; } if ( mes < 10 ) { mess = "0" + mess; } if ( any >= 0 && any < 10 ) { anys = "200" + anys; } else if ( any >= 10 && any < 50 ) { anys = "20" + anys; } else if ( any >= 50 && any <= 99 ) { anys = "19" + anys; } cfecha.value = dias + "/" + mess + "/" + anys; return ( false ); } function FechaMenor ( f1,f2) { return (fechaJS(f1.value) 3 ) { imp = "." + ent.substr (lon-3, 3) + imp; lon = lon - 3; } imp = ent.substr(0, lon ) + imp; if ( imp.charAt(0) == "," ) imp = "0" + imp; // fica 0 per 0,01 0,10 ... sinó quedaria ,01 ,10 ... return imp; } //FUNCIONES VALIDAR CONTRASENA function validarcontrasena(contras) { // Lista de los códigos Ascii no válidos. Utilizo el * como separador //var llista="*209*241*199*231*186*170*183*8364*191*161*94*96*168*180*10*40*172*34*" var llista="*209*241*199*231*186*170*183*8364*191*161*94*96*168*180*10*40*172*34*225*233*237*243*250*224*232*236*242*249*228*235*239*246*252*226*234*238*244*251*193*201*205*211*218*192*200*204*210*217*196*203*207*214*220*194*202*206*212*219*" for (var i=0;i=0) { if (language=="CT") { alert("El caràcter " +"" + letra + "" + " no es vàlid."); } else { alert ("El carácter " +'"'+ letra + '"'+ " no es válido."); } return false; } } return true; } // FIN FUNCIÓN VALIDAR CONTRASEÑA // FUNCIÓN VALIDAR NAF // Validaciones NAF Partes de Baja function validarNAF (naf) { var ss1 = naf.substr (2, 1); if (ss1 == "0") { numNaf = "0" + naf.substr (0, 2) + naf.substr (3, 7); } else { numNaf = naf.substr (0, 10); } var dc1 = numNaf / 97; var dcpos = String(dc1); var pos = dcpos.indexOf("."); if (pos==-1) { dc2= dcpos; }else{ dc2 = dcpos.substr (0, pos); } var dc3 = dc2 * 97; var dc4 = numNaf - dc3; iniDc = naf.substr (10, 2); if (dc4 == iniDc) { dc = "True"; } else { dc = "False"; } return (dc); } // FUNCIONES PARA VALIDAR CIF; NIF; NIE. Ojo: se ha de tener variable JS language // Se trata de 4 funicones: validNIE, validCIF, subvalidCIF1 y validDNI function validNIE(NIE) { var primerCaract=NIE.substr(0,1); var ultimoCaract=NIE.substr(8,1); var restoCaract=NIE.substr(1,7); primerCaract=primerCaract.toUpperCase(); ultimoCaract=ultimoCaract.toUpperCase(); var num=ultimoCaract.charCodeAt(0); var letras=new Array("T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E") if (NIE.length!=9) { if (language=="CT") { alert ("El NIE ha de tenir 9 caràcters."); } else { alert("El NIE debe tener 9 caracteres"); } return false; } if (primerCaract!="X") { if (language=="CT") { alert ("El primer caràcter del NIE ha de ser X."); } else { alert ("El primer carácter del NIE debe de ser X"); } return false; } if (ultimoCaract.charCodeAt(0)<65 | ultimoCaract.charCodeAt(0)>90) { if (language=="CT") { alert ("L'últim caràcter del NIE ha de ser una lletra."); } else { alert("El último carácter del NIE debe ser una letra") } return false; } if (isNaN(restoCaract)==true) { if (language=="CT") { alert ("Les 7 xifres intermedies del NIE han de ser numèriques."); } else { alert("Las 7 cifras intermedias del NIE deben ser numéricas") } return false; } else { var Modulo= (restoCaract%23); if (letras[Modulo]!=ultimoCaract) { if (language=="CT") { alert ("El NIE no és correcte."); } else { alert ("El NIE no es correcto"); } return false; } } return true; } function validCIF(CIF) { var midCIF, iniCIF, control, vMod2; //cadenas de texto var sumaPares, sl1, sl2, sl3, sl4, sumaImpares, sumaTotal; //Enteros var vMod, totalMod; //Enteros var vCIF, isCIF; //Variables var states=new Array("A","B","C","D","E","F","G","H","I","J"); vCIF=false; isCIF=false; CIF=CIF.toUpperCase(); if (CIF.length!=9) { if (language=="CT") { alert ("El CIF ha de tenir 9 caracters."); } else { alert ("El CIF debe tener 9 carácteres."); } return false; } else { isCIF=true; midCIF=CIF.slice(1,8); if (isNaN(midCIF)) { if (language=="CT") { alert ("El CIF no és correcte (Les 8 darreres posicions han de ser numèriques)."); } else { alert ("El CIF no es correcto (Las 8 últimas posiciones han de ser numéricas)."); } return false; } else { iniCIF=CIF.substr(0,1); if (!isNaN(iniCIF)) { if (language=="CT") { alert ("El CIF no és correcte (El CIF ha de començar amb un caracter)."); } else { alert ("El CIF no es correcto (El CIF debe empezar con un carácter)."); } return false; } else { if (midCIF.indexOf(".")!=-1) { if (language=="CT") { alert ("El CIF no és correcte."); } else { alert ("El CIF no es correcto."); } return false; } else { control=CIF.substr(CIF.length-1,1); sumaPares=parseInt(midCIF.substr(1,1))+parseInt(midCIF.substr(3,1))+parseInt(midCIF.substr(5,1)); sl1=subvalidCIF1(parseInt(midCIF.substr(0,1))*2); sl2=subvalidCIF1(parseInt(midCIF.substr(2,1))*2); sl3=subvalidCIF1(parseInt(midCIF.substr(4,1))*2); sl4=subvalidCIF1(parseInt(midCIF.substr(midCIF.length-1,1))*2); sumaImpares=sl1+sl2+sl3+sl4; sumaTotal=sumaPares+sumaImpares; vMod=10 - (sumaTotal % 10); vMod2=String(vMod).substr(String(vMod).length-1,1); } } } } if (isCIF==true) { if ((iniCIF.toUpperCase()!="P" && iniCIF.toUpperCase()!="Q" && iniCIF.toUpperCase()!="S") && (!isNaN(control))) { if (vMod2==control) { vCIF=true; } } else { if ((iniCIF.toUpperCase()=="P" || iniCIF.toUpperCase()=="Q" || iniCIF.toUpperCase()=="S") || (isNaN(control))) { if (states[vMod-1]==control) { vCIF=true; } } } if (vCIF==false) { if (language=="CT") { alert ("El CIF no és correcte."); } else { alert ("El CIF no es correcto."); } return false; } } return true; } function subvalidCIF1(num) { if (num>=10) { num=parseInt(String(num).substr(0,1))+parseInt(String(num).substr(1,1)); } return num; } function validDNI(DNI) { var restoCaract=DNI.substr(0,8); var ultimoCaract=DNI.substr(8,1); var num=ultimoCaract.charCodeAt(0); ultimoCaract=ultimoCaract.toUpperCase(); var lista2=new Array("T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E","T") if (DNI.length!=9) { if (language=="CT") { alert ("El DNI ha de tenir 9 caràcters."); } else { alert("El DNI debe tener 9 caracteres"); } return false; } if (ultimoCaract.charCodeAt(0)<65 | ultimoCaract.charCodeAt(0)>90) { if (language=="CT") { alert ("L'últim caràcter del DNI ha de ser una lletra."); } else { alert("El último carácter del DNI ha de ser una letra") } return false; } if (isNaN(restoCaract)==true) { if (language=="CT") { alert ("Les 8 primeres xifres del DNI han de ser numèriques."); } else { alert("Las 8 primeras cifras del DNI deben ser numéricas") } return false; } else { var Modulo= (restoCaract%23); if (lista2[Modulo]!=ultimoCaract) { if (language=="CT") { alert ("El DNI no és correcte."); } else { alert ("El DNI no es correcto"); } return false; } } return true; } function jsTrim(JSvalue) { //La típica función de quitar espacios en blanco de todos los lenguajes var JStemp = JSvalue; var JSobj = /^(\s*)([\W\w]*)(\b\s*$)/; if (JSobj.test(JStemp)) { JStemp = JStemp.replace(JSobj, '$2'); } var JSobj = / +/g; JStemp = JStemp.replace(JSobj, " "); if (JStemp == " ") { JStemp = ""; } return JStemp; } function jsQuitarAlta(JSValor, JSQuitar) { //Quitará el valor JSQuitar del valor JSValor JSValor = JSValor.replace(JSQuitar, " "); return JSValor ; } function jsSoloDigitos(JSValor) { //Comprueba que la cadena pasada sólo contenga dígitos //Si es vacio cumple la condición if (jsTrim(JSValor)=="") {return true;} JSRegExp =/^\d+$/; //Expresión regular para chequear sólo dígitos if(JSRegExp.test(JSValor)) { return true; }else{ return false; } } function jsSoloAlfa(JSValor) { //Comprueba que la cadena pasada sólo contenga caracteres alfabéticos ( sin números ) y espacios //Los acentos, eñe y la "c trencada" han de ser añadidos 1 a 1 //Si es vacio cumple la condición if (jsTrim(JSValor)=="") {return true;} JSRegExp =/^[a-zA-Z\sáéíóúàèìòùäëïöüâêîôûçñÁÉÍÓÚÀÈÌÒÙÄËÏÖÜÂÊÎÔÛÇÑ]+$/; //Expresión regular para chequear caracteres alfanuméricos if(JSRegExp.test(JSValor)) { return true; }else{ return false; } }