Quiero validar algunos campos pasando un patrón diferente a una función de validación.
send.addEventListener("click", function (event) { let pattern = /^[A-Za-zÁ-Úá-ú\s]{3,15}$/; let nameIsVal = regexValidator(pattern); if (nameIsVal) { return true; } else { event.preventDefault(); return false; } }); function regexValidator(pattern) { if (!pattern.test(this.value)) { return false; } else { return true; } }Supongo que estás en una clase. Asegúrese de que this palabra clave apunte a la instancia correcta en su controlador de eventos, ya sea con la palabra clave .bind() o con una función de flecha.
Registraría el controlador así:
send.addEventListener('click', (event) => this.checkRegex(event));O si su entorno no admite funciones de flecha, esto también debería funcionar:
send.addEventListener('click', this.checkRegex.bind(this, event));Luego agregaría los métodos a la clase de esta manera:
checkRegex(event) { let pattern = /^[A-Za-zÁ-Úá-ú\s]{3,15}$/; let nameIsVal = this.regexValidator(pattern); if (nameIsVal) { return true; } else { event.preventDefault(); return false; } } regexValidator(pattern) { if (!pattern.test(this.value)) { return false; } else { return true; } }