Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Generalizar mais as validações de formatos

class ValidaCampoHelper {

    static campoValido(regex, valor) {
        if (!regex.test(valor)) {
            throw new Error(`Valor com formato incorreto! Valor passado: ${valor}, Formato esperado: ${regex}`);
        }
        return;
    }

}

Exemplo de uso:

class Codigo {

    constructor(texto) {
        this._formato = /\D{3}-\D{2}-\d{2}/;
        ValidaCampoHelper.campoValido(this._formato, texto);
        this._texto = texto;
    }

    get texto() {
        return this._texto;
    }

}

E quando instanciarmos Codigo:

let codigo = new Codigo('GWZ-JJ-12');
console.log(codigo.texto);

Ou seja, a classe Codigo fica responsável por saber o seu formato esperado e com isso em seu construtor, a mesma já valida se o texto passado por parâmetro está ou não no formato correto.

O que acham?

Abraços!

2 respostas

Oi Pablo, vc cria semântica, com certeza. O problema é que vc acaba com uma explosão dessas classes pequenas, é um ponto que vc precisa analisar no seu projeto.

solução!

Certo! Entendo que uma classe utilitária que valida formato de campos, provavelmente sempre será necessária em um projeto, era mais nesse sentido que expus essa solução, onde passamos para uma classe responsável por validar formato e não precisaríamos ficar reescrevendo código a cada validação que o projeto necessitar.

Abraços.