W kilku projektach stosuję poniższą metodę walidacji pól formularza konkretnego typu. Ciekaw jestem, co o tym sądzicie.

Array.from(document.querySelectorAll('input[type="typ formularza"]')).forEach(element => 
{
        element.addEventListener('blur', checkField);
});

function checkField()
{
   walidateText(this.value, this.id);
   // miejsce na dodatkowy kod np. kolejna funkcja walidująca
}

function walidateText(text, ID)
{
    let lettersORnumbers = /^[a-zA-ZąĄćĆęĘóÓłŁśŚźŹżŻńŃ0-9]*$/;
    let formID = document.getElementById(ID);

    if (lettersORnumbers.test(text))
    {
       formID.style.backgroundColor = "white";
    }
    else
    {
       alert("Wrong text!");
       // zamiast alertu oczywiście mogę zastosować coś innego, to tylko przykład interakcji
      formID.style.backgroundColor = "red";
    }    
}