Validar cajas

Fernando
30 de Noviembre del 2001
Solo escribo para saber si alguin sabe como validar una caja de tipo date...Gracias

luckas
30 de Noviembre del 2001
Tengo que hacer un proyecto en JSP, servlets,... i para validar la data lo hago desde Javascript.
Me costó un poco hacerlo, porqué tuve que mirarme lo de las expresiones regulares en Javascript, lo de las datas,...,
Este código valida si una data escrita en una caja de tipo texto sigue el siguiente formato: aaaa-mm-dd. Lo tengo así ya que para entrarlo en la base de datos necesita este formato.

Si lo que quieres es que esté en otro formato tienes que canviar la expresión regular. Por ejemplo, para el formato: dd-mm-aaaa la ER tiene que ser: var dataER = "(^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4})
i la validacion de la data se tiene que canviar por:
date1 = new Date(strSplit[2],strSplit[1]-1,strSplit[0]);
if ( (strSplit[2]!=(date1.getFullYear())) || (strSplit[1]!=(date1.getMonth()+1)) || (strSplit[0]!=date1.getDate()) ) { /*lo que havia*/}



Aquí te dejo el código:

-----------------------------------------------
var requestDate = document.teachercourse.datebox.value;
if (!validateDate(requestDate)) { //Si no podemos validar la data:
document.teachercourse.datebox.focus();
document.teachercourse.datebox.select();
return false;
}


function validateDate(requestDate) {
var strSplit;
var date1;
var dataER = "(^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2})$"; //Expresio regular per al any amb el format aaaa-mm-dd

dataRegExp = new RegExp(dataER);

if (dataRegExp.exec(requestDate)) {
strSplit = requestDate.split("-");
date1 = new Date(strSplit[0],strSplit[1]-1,strSplit[2]);
if ( (strSplit[0]!=(date1.getFullYear())) || (strSplit[1]!=(date1.getMonth()+1)) || (strSplit[2]!=date1.getDate()) ) {
alert("Incorrect data. Check the day, month and year format");
return false;
}
}
else {
alert("Incorrect date format: \"" + requestDate.toString() + "\" . The date must be in \"yyyy-mm-dd\" format.");
return false;
}
return true;
}
-------------------------------------------------

Está en multiidioma porqué el proyecto es en inglés, pero yo hablo en catalán y aquí lo quereis en castellano, un lio, vaya...

luckas
30 de Noviembre del 2001
Ui, que al pegarlo me ha canviado cosas, pero que hace este foro!!!!!!

A strSplit = requestDate.split("-"); tienes que quitar las barras!!! I así a todos los sitios donde aparece una barra seguido de unas comillas.

Pero tienes que vigilar dentro de los alerts porque cuando quiero escribir comillas lo pongo con una barra seguido de una comilla.

Al que ha hecho el foro: ARREGLAD-LO!!!!!, que no se entiende cuando escribo algo.

De buen rollo, claro :-)