UNPKG

programacion-web

Version:

validacion-formularios

118 lines (108 loc) 3.78 kB
/** * @file Librería de validación de formularios * @description Proporciona métodos para validar diferentes tipos de campos de formulario * @version 1.1.0 */ const Validacion = { /** * Valida un campo requerido * @param {string} valor - Valor a validar * @param {string} nombreCampo - Nombre del campo para mensajes de error * @returns {string} Mensaje de error o cadena vacía si es válido */ requerido: (valor, nombreCampo = 'Este campo') => { if (typeof valor === 'string') valor = valor.trim(); return !valor ? `${nombreCampo} es requerido` : ''; }, /** * Valida longitud mínima * @param {string} valor - Valor a validar * @param {number} min - Longitud mínima * @param {string} nombreCampo - Nombre del campo * @returns {string} Mensaje de error o cadena vacía */ minLongitud: (valor, min, nombreCampo = 'Este campo') => { if (!valor) return ''; return valor.length < min ? `${nombreCampo} debe tener al menos ${min} caracteres` : ''; }, /** * Valida longitud máxima * @param {string} valor - Valor a validar * @param {number} max - Longitud máxima * @param {string} nombreCampo - Nombre del campo * @returns {string} Mensaje de error o cadena vacía */ maxLongitud: (valor, max, nombreCampo = 'Este campo') => { if (!valor) return ''; return valor.length > max ? `${nombreCampo} no puede exceder ${max} caracteres` : ''; }, /** * Valida un email * @param {string} email - Email a validar * @returns {string} Mensaje de error o cadena vacía */ email: (email) => { if (!email) return ''; const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return !re.test(email) ? 'Ingrese un email válido' : ''; }, /** * Valida un número dentro de un rango * @param {number} numero - Número a validar * @param {number} min - Valor mínimo * @param {number} max - Valor máximo * @param {string} nombreCampo - Nombre del campo * @returns {string} Mensaje de error o cadena vacía */ rangoNumerico: (numero, min, max, nombreCampo = 'Este campo') => { if (isNaN(numero)) return `${nombreCampo} debe ser un número`; return numero < min || numero > max ? `${nombreCampo} debe estar entre ${min} y ${max}` : ''; }, /** * Valida que dos campos sean iguales (para contraseñas) * @param {string} valor1 - Primer valor * @param {string} valor2 - Segundo valor * @param {string} nombreCampo - Nombre del campo * @returns {string} Mensaje de error o cadena vacía */ coincidir: (valor1, valor2, nombreCampo = 'Los campos') => { return valor1 !== valor2 ? `${nombreCampo} no coinciden` : ''; }, /** * Valida un número de teléfono básico * @param {string} telefono - Número a validar * @returns {string} Mensaje de error o cadena vacía */ telefono: (telefono) => { if (!telefono) return ''; const re = /^[0-9]{7,15}$/; return !re.test(telefono) ? 'Ingrese un teléfono válido' : ''; }, /** * Valida una URL * @param {string} url - URL a validar * @returns {string} Mensaje de error o cadena vacía */ url: (url) => { if (!url) return ''; const re = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/; return !re.test(url) ? 'Ingrese una URL válida' : ''; } }; // Exportación para diferentes entornos if (typeof module !== 'undefined' && module.exports) { // Node.js module.exports = Validacion; } else if (typeof define === 'function' && define.amd) { // AMD define([], () => Validacion); } else { // Navegador window.Validacion = Validacion; }