Listo (Ctrl + Enter para ejecutar) Bootcamp Fullstack »
app.js
Tab = 4 espacios
1
// Módulo de Validación de Formularios (Kilopolis Academia)
const Validador = {
  reglas: {
    email: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,
    username: /^[a-z0-9_]{3,16}$/,
    slug: /^[a-z0-9]+(?:-[a-z0-9]+)*$/,
    telefonoE164: /^\+?[1-9]\d{9,14}$/,
    passwordFuerte: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*]).{8,32}$/
  },

  validarCampo(tipo, valor) {
    const patron = this.reglas[tipo];
    if (!patron) throw new Error(`Regla de validación desconocida: ${tipo}`);
    return patron.test(String(valor).trim());
  },

  validarFormulario(datos) {
    const errores = {};
    for (const [campo, valor] of Object.entries(datos)) {
      if (this.reglas[campo] && !this.validarCampo(campo, valor)) {
        errores[campo] = `El valor ingresado para "${campo}" no cumple con el formato requerido.`;
      }
    }
    return {
      esValido: Object.keys(errores).length === 0,
      errores
    };
  }
};

// Prueba con datos reales
const formularioAlumno = {
  username: "carlos_dev",
  email: "[email protected]",
  slug: "mi-primer-proyecto-fullstack",
  telefonoE164: "+573001234567",
  passwordFuerte: "Kilopolis*2026!"
};

console.log("--- 1. Validación de Formulario Válido ---");
console.log(Validador.validarFormulario(formularioAlumno));

console.log("\n--- 2. Validación de Formulario con Errores ---");
const formularioInvalido = {
  username: "User con Espacios!",
  email: "correo-invalido@",
  slug: "-slug-con-guion-inicial-",
  passwordFuerte: "12345"
};
console.log(Validador.validarFormulario(formularioInvalido));
Haz clic para editar este código
Vista Previa
Consola Virtual JavaScript