JSFiddle - React, Tailwind, and code Playground

HTML

<form id="form1" method="get" action="http://www.marca.com">
    Email: <input type="text" name="email" regexp="^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$" error="El email no es correcto." /><br/>
    Nick: <input type="text" name="nick" regexp="^.+$" error="El nick es obligatorio" /><br/>
    Pais: <input type="text" name="pais" /><br/>
    <input type="submit" valure="enviar" />
</form>

JavaScript

//Librería básica de validación javascript
function JsValidator(form){
    this.form=form;
    this.validar=function(){
        var n=this.form.elements.length;
        for (var i=0;i<n;i++)
        {
            var elemento=this.form.elements[i];
            if (elemento.hasAttribute("regexp"))
            {
                var regExp = new RegExp(elemento.getAttribute("regexp"));
                var txtError=(elemento.hasAttribute("error"))?elemento.getAttribute("error"):"";
                if (!regExp.test(elemento.value))
                {
                    return { valido:false, texto: txtError };
                }
            }
        }
        return { valido:true };
    }
}
//Fin de la librería

//Código a añadir allí donde quiera usarse la librería
window.onload=function(){
    var form=document.getElementById("form1");
    var validador=new JsValidator(form);
    form.onsubmit=function(){
        var respuesta=validador.validar();
        if (!respuesta.valido)
        {
            alert(respuesta.texto);
            return false;
        }
        return true;
    };
    
};