Для имейлов применяют вот такой паттерн
^[^\s@]+@[^\s@]+\.[^\s@]+$
пишите его прямо в атрибут pattern="^[^\s@]+@[^\s@]+\.[^\s@]+$" и там можно либо встроенную валидацию формы заюзать, либо уже в цикле прогнать скриптом все найденные поля. А чтобы и сообщения об ошибках не хранить в скрипте, так же в атрибут data-err="Короче, имя не должно быть короче 1 буквы" можно записать.
То есть примерно так
for(var i=0,inputs=form.elements,inp,log=[];inp=inputs[i];i++)
if(!new RegExp(inp.getAttribute('pattern')).test(inp.value)
log.push(inp.getAttribute('data-err'));
Ну далее по месту. То есть это будет вся валидация для любого количества полей в форме при условии что у всех у них есть паттерн с регой и дата-ерр