function Mail_Validate(Value) { var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/; var check=/@[\w\-]+\./; var checkend=/\.[^@]{2,3}$/; if (Value == "") return(""); if(((Value.search(exclude) != -1)||(Value.search(check)) == -1)|| (Value.search(checkend) == -1)){ return("Error de sintaxi");} } function Date_Validate(Value) { //fechas, formato dd/mm/aaaa var mes31 = /^([1-3]0|[0-2][1-9]|31|[0-9])\/(1|01|3|03|5|05|7|07|8|08|10|12)\/(19[0-9][0-9]|20[0-9][0-9])$/; var mes30 = /^([1-3]0|[0-2][1-9]|[0-9])\/(4|04|6|06|9|09|11)\/(19[0-9][0-9]|20[0-9][0-9])$/; var mes28 = /^([1-2]0|[0-2][1-8]|[0-1]9|[0-9])\/(02|2)\/(19[0-9][0-9]|20[0-9][0-9])$/; var mes29 = /^([1-2]0|[0-2][1-9]|[0-9])\/(02|2)\/(1904|1908|1912|1916|1920|1924|1928|1932|1936|1940|1944|1948|1952|1956|1960|1964|1968|1972|1976|1980|1984|1988|1992|1996|2000|2004|2008|2012|2016|2020)$/; if (!(mes29.test(Value) || mes31.test(Value) || mes28.test(Value) || mes30.test(Value))) { return (""); } else { return ""; } } function CP_Validate(Value) { var cp = /^([1-4][0-9]|0[1-9]|5[0-2])[0-9][0-9][0-9]$/; if (!cp.test(Value)) return (""); } function Value_Trim(Value) { var Length; Length = Value.length; for(Cnt = 0; Cnt < Value.length && Value.charAt(Cnt) == " "; Cnt++); Value = Value.substr(Cnt); for(Cnt = Value.length - 1; Cnt >= 0 && Value.charAt(Cnt) == " "; Cnt--); Value = Value.substring(0, Cnt + 1); return(Value); } function Field_Validate(Name, id, ValueType, Min, Max, Required) { var CharCnt; var ErrorHeader; var Value; var fForm; var HTMLTipo fForm = eval("document.getElementById('" + id + "').value"); ErrorHeader = "\n- " + Name + ": "; HTMLTipo = eval("document.getElementById('" + id + "').type"); if (!HTMLTipo) HTMLTipo = eval("document.getElementById('" + id + "')[0].type"); switch (HTMLTipo) { case "select-one": if (Required && eval("document.getElementById('" + id + "').selectedIndex") < 1) return(ErrorHeader + ""); return(""); case "textarea": Value = Value_Trim("" + eval("document.getElementById('" + id + "').value")); if (Required && Value == "") return(ErrorHeader + "Campo vacío"); return(""); case "text": case "hidden": Value = Value_Trim("" + eval("document.getElementById('" + id + "').value")); if (Required && Value == "") return(ErrorHeader + "Campo vacío"); case "password": Value = Value_Trim("" + eval("document.getElementById('" + id + "').value")); if (Required && Value == "") return(ErrorHeader + "Campo vacío"); if (!Required && Value == "") return(""); switch (ValueType.toLowerCase()) { case "alphabetic": for(CharCnt = 0; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if ((Char < 'A' || Char > 'Z') && (Char < 'a' || Char > 'z') && (Char != 'á' && Char != 'é' && Char != 'í' && Char != 'ó' && Char != 'ú' && Char != 'Á' && Char != 'É' && Char != 'Í' && Char != 'Ó' && Char != 'Ú' && Char != 'è' && Char != 'ò' && Char != 'È' && Char != 'Ò' && Char != 'ü' && Char != 'ï' && Char != 'Ü' && Char != 'Ï' && Char != 'ñ' && Char != 'Ñ' && Char != 'à' && Char != 'À' && Char!=' ' && Char !='ç' && Char !='Ç' && Char !='-' && Char != "\'")) return(ErrorHeader + ""); } if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + " " + Min + " "); else return(ErrorHeader + " " + Min + " i " + Max + " "); } break; case "select": if (Required && eval("fForm." + Field + ".selectedIndex") < 1) return(ErrorHeader + ""); break; case "cp": for(CharCnt = 0; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + ""); } if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + " " + Min + " "); else return(ErrorHeader + " " + Min + " i " + Max + " "); } Error = CP_Validate(Value); if (Error) return(ErrorHeader + Error + "."); break; case "digit": for(CharCnt = 0; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + ""); } if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + " " + Min + " "); else return(ErrorHeader + " " + Min + " i " + Max + " "); } break; case "e-mail": Error = Mail_Validate(Value); if (Error) return(ErrorHeader + Error + "."); if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + " " + Min + " "); else return(ErrorHeader + " " + Min + " i " + Max + " "); } break; case "integer": for(CharCnt = 0; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + ""); } if (parseFloat(Value) > Max || parseFloat(Value) < Min) return(ErrorHeader + " " + Min + " i " + Max + "."); break; case "string": if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + " " + Min + " "); else return(ErrorHeader + " " + Min + " i " + Max + " "); } break; case "clave": if (Value.length > Max || Value.length < Min) { return(ErrorHeader + " " + Min + " i " + Max + " "); } break; case "telefono": if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + " " + Min + " "); else return(ErrorHeader + " " + Min + " i " + Max + " "); } if (Value.charAt(0)=='9' || Value.charAt(0)=='6') { //nada } else return(ErrorHeader + ""); for(CharCnt = 1; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + ""); } break; case "movil": if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + " " + Min + " "); else return(ErrorHeader + " " + Min + " i " + Max + " "); } if (Value.charAt(0)!='6') return(ErrorHeader + ""); for(CharCnt = 1; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + ""); } break; case "fecha": Error=Date_Validate(Value); if (Error) return(ErrorHeader + Error + "."); if (Value.length > Max || Value.length < Min) { return(ErrorHeader + " " + Min + " i " + Max + " "); } break; default: return(ErrorHeader + " [" + ValueType + "] "); } return(""); } return(ErrorHeader + ""); }