Hola. Ejercicio CU01185E del curso JavaScript desde cero.
A partir del siguiente código:
<html>
    <head>
                <meta charset="utf-8">
                <style type="text/css">
                input {margin:10px;}
                </style>
        <script>
            function Valida(formulario) {
                /* Validación de campos NO VACÍOS */
                if ((formulario.campo1.value.length == 0) || (formulario.campo2.value.length ==0) || (formulario.cpostal.value.length ==0) || (formulario.dni.value.length ==0) || (formulario.email.value.length ==0)) {
                    alert('Falta información');
                    return false;
                } 
                if (isNaN(parseInt(formulario.campo2.value))) {
                    alert('El campo2 debe ser un número');
                    return false;
                }
                /* validación del CÓDIGO POSTAL*/
                var ercp=/(^([0-9]{5,5})|^)$/;
                if (!(ercp.test(formulario.cpostal.value))) {
                    alert('Contenido del código postal no es un código postal válido');
                    return false; }
                /* validación del DNI */
                var erdni=/(^([0-9]{8,8}\-[A-Z])|^)$/;
                if (!(erdni.test(formulario.dni.value))) {
                    alert('Contenido del dni no es un DNI válido.');
                    return false;  }
                /* validación del e-mail */
                var ercorreo=/^[^@\s]+@[^@\.\s]+(\.[^@\.\s]+)+$/;        
                if (!(ercorreo.test(formulario.email.value))) {
                    alert('Contenido del email no es un correo electrónico válido.');
                    return false; }
                /* si no hemos detectado fallo devolvemos TRUE */
                return true;
            }
        </script>
    </head>
    <body>
        <form name="miFormulario" onsubmit="return Valida(this);" action="http://aprenderaprogramar.com" >
            Campo1 <input type="text" name="campo1"><br>
            Campo2 (debe ser número) <input type="text" name="campo2"><br>
            Código postal <input type="text" name="cpostal"><br>
            DNI <input type="text" name="dni"><br>
            email <input type="text" name="email"><br>
            <input type="submit" value="Enviar" name="enviar">
        </form>
    </body>
</html>a) ¿Cómo se realiza la comprobación de que no hay campos vacíos?
Desde esta parte...
if ((formulario.campo1.value.length == 0) || (formulario.campo2.value.length ==0) || (formulario.cpostal.value.length ==0) ||
				(formulario.dni.value.length ==0) || (formulario.email.value.length ==0)) {
                    alert('Falta información');
                    return false;
                } Se comprueba el tamaño de la cadena de caracteres introducidos en cada campo, y si alguna es 0,  no será enviado el formulario.
b) ¿Cómo se realiza la comprobación de que el campo 2 es un número?
Con la función isNaN() se comprueba si los datos introducidos son un número válido.
c) ¿En qué consiste la validación del código postal? Explícala paso a paso. Pon ejemplos de tres valores válidos y tres valores no válidos.
La expresión regular usada es /(^([0-9]{5,5})|^)$/, que viene a decir que el campo debe de contener cinco caracteres numéricos que estén entre el 0 y el 9.
Ejemplos válidos serían: 12345, 45678, 05574.
Ejemplos no válidos serían cualquier número que contenga menos de 5 cifras o más de 5 cifras.
d) ¿En qué consiste la validación del DNI? Explícala paso a paso. Pon ejemplos de tres valores válidos y tres valores no válidos.
 /(^([0-9]{8,8}\-[A-Z])|^)$/
El DNI debe de estar formado por 8 caracteres que estén entre el 0 y el 9, seguidos por un guión "-" y acabados con una letra mayúscula.
DNI no válidos: 12345-S, 12345Z, 004546-
DNI válidos: 00000000-S, 12345678-E, 45678915-Z
e) ¿En qué consiste la validación del email? Explícala paso a paso. Pon ejemplos de tres valores válidos y tres valores no válidos.
/^[^@\s]+@[^@\.\s]+(\.[^@\.\s]+)+$/
El email debe de empezar por una cadena de caracteres que no empiecen por @ o espacio en blanco, compuesta por 1 o mas caracteres. Seguida del simbolo @. Seguida de una cadena de caracteres que no empiecen por @, "." o espacio en blanco, compuesta por 1 o mas caracteres. Seguida de un ".". Seguida  de una cadena de caracteres que no empiecen por @, "." o espacio en blanco, compuesta por 1 o mas caracteres.
Emails no válidos: @@.com, pepe.com, popi@.com
Emails válidos: pepe@pepe.com, pepe@p.c, pepe@pepe.pepepe
f) ¿Cómo se consigue que no se envíe el formulario si no se cumplen los requisitos exigidos?
Los requisitos se van comprobando uno a uno, así que en cuanto uno de ellos no es válido se devuelve false al formulario.
Saludos.