Parte logica
Para comprobar el DNI unicamente es necesario:
- Mirar que no hayan mas de 2 barras "/".
- Dividir la cadena en 3 a partir del delimitador, que en este caso es "/".
- Comprobar que la fecha sea correcta.
Codigo
Utilizaremos la siguiente función:
/*
Función que comprueba si se ha añadido correctamente una fecha con el siguiente metodo dd/mm/aaaa
@param string $cadena
@return boolean
*/
function validaData ($cadena)
{
//Miramos que hayan 2 "/" para que el checkdate no pete
if (substr_count($cadena, "/")!=2) return false;
//Separamos la cadena por /
$fechaDividida= explode("/",$cadena);
//Comrpobamos que realmente se ha añadido el formato correcto
if (checkdate($fechaDividida[1], $fechaDividida[0], $fechaDividida[2]))
//Todo bien
return true;
else
//Error en la validación
return false;
}
Funciones utilizadas
int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] )
array explode ( string $delimiter , string $string [, int $limit ] )
bool checkdate ( int $month , int $day , int $year )
Read more