UNPKG

gemi-lib-hooks

Version:
141 lines (139 loc) 3.8 kB
// hooks/usePropTypes/validadores/Validadores_String.tsx function Build_Validadores_String() { const validar = (valor) => { if (typeof valor !== "string") { return "Error: El valor proporcionado no es un string."; } return true; }; function chainable(fn) { return Object.assign(fn, { required: validar.required, min: validar.min, max: validar.max, exact: validar.exact, onlyLetters: validar.onlyLetters, onlyNumbers: validar.onlyNumbers, alphanumeric: validar.alphanumeric, regex: validar.regex }); } validar.required = (mensaje) => { return chainable((valor) => { const result = validar(valor); if (typeof result === "string") return result; if (!valor) { if (mensaje) { return mensaje; } return "Error: Este campo es requerido."; } return true; }); }; validar.min = (longitud, mensaje) => { return chainable((valor) => { const result = validar(valor); if (typeof result === "string") return result; const str = valor; if (str.length < longitud) { if (mensaje) { return mensaje; } return `Error: Debe tener al menos ${longitud} caracteres.`; } return true; }); }; validar.max = (longitud, mensaje) => { return chainable((valor) => { const result = validar(valor); if (typeof result === "string") return result; const str = valor; if (str.length > longitud) { if (mensaje) { return mensaje; } return `Error: No puede superar los ${longitud} caracteres.`; } return true; }); }; validar.exact = (longitud, mensaje) => { return chainable((valor) => { const result = validar(valor); if (typeof result === "string") return result; const str = valor; if (str.length !== longitud) { if (mensaje) { return mensaje; } return `Error: Debe tener exactamente ${longitud} caracteres.`; } return true; }); }; validar.onlyLetters = (mensaje) => { return chainable((valor) => { const result = validar(valor); if (typeof result === "string") return result; const str = valor; if (!/^[a-zA-Z]+$/.test(str)) { if (mensaje) { return mensaje; } return "Error: Solo se permiten letras."; } return true; }); }; validar.onlyNumbers = (mensaje) => { return chainable((valor) => { const result = validar(valor); if (typeof result === "string") return result; const str = valor; if (!/^[0-9]+$/.test(str)) { if (mensaje) { return mensaje; } return "Error: Solo se permiten n\xFAmeros."; } return true; }); }; validar.alphanumeric = (mensaje) => { return chainable((valor) => { const result = validar(valor); if (typeof result === "string") return result; const str = valor; if (!/^[a-zA-Z0-9]+$/.test(str)) { if (mensaje) { return mensaje; } return "Error: Solo se permiten letras y n\xFAmeros."; } return true; }); }; validar.regex = (expresion, mensaje) => { return chainable((valor) => { const result = validar(valor); if (typeof result === "string") return result; const str = valor; if (!expresion.test(str)) { return mensaje; } return true; }); }; return validar; } var Validadores_String = Build_Validadores_String(); // hooks/usePropTypes/validadores/Validadores.tsx var Validadores = { string: Validadores_String }; var Validadores_default = Validadores; export { Validadores_default as Validadores };