Lo de la máscara sería un tema (escabroso) a tratar aparte.
Hice una máscara para un campo de tipo HH:MM que funcionaba bastante bien, aunque no he conseguido hacer una general, lleva bastantes quebraderos de cabeza.
Aunque al no verlo en ninguna web, no le he puesto demasiado entusiasmo a la cosa.
Por lo demás, el resto de campos se podrían validar con una simple expresión regular, a la que no le veo complicación en cuanto a que algunas se pueden encontrar (email) y otras son básicas (dd/mm/aaaa).
Código PHP:
<label for="edad">Edad (2 dígitos)</label>
<input type="text" name="edad" id="edad" maxlength="2" size="2" onblur="valida(this,/^\d\d$/)" />
<script type="text/javascript">
function valida(campo,regex) {
if( !regex.test(campo.value) )
mostrarError(campo);
else
ocultarError(campo);
}
</script>
Esa misma función valida() valdría para todo este tipo de campos. Y normalmente las fechas habría que validarlas con el objeto Date() o con un par de selects para escoger el día, mes y año.
Tendría más cuerpo la cuestión de
Medidor de contraseña segura (criterios a escoger libremente), en esa sí que habría que batallar un poco más, y me parece algo interesante para investigar.
Mi propuesta es que se trabajen, además de un par de campos de este tipo (validar con expresiones regulares), trabajar con selects, checkbox y radios, que es más "divertido".
Un saludo.