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!