Если у вас сначала есть isValid = true
, вы можете сделать это следующим образом:
var form = document.forms[0];
var props = ["lname", "fname", "address", "summary"];
var isValid = props.every(prop => testLength(form[prop]))
&& testPattern(form.account, /^ACT\d{6}$/)
&& testPattern(form.department, /^DEPT\d{3}$/)
&& testPattern(form.project, /^PROJ\d{5}$/)
&& testPattern(form.ssn, /^\d{3}-\d{2}-\d{4}$|\d{9}$/);
Вы также можете применить предопределенный подход массива к шаблонам, например так:
var form = document.forms[0];
var props = ["lname", "fname", "address", "summary"];
var patts = [["account", /^ACT\d{6}$/], ["department", /^DEPT\d{3}$/],
["project", /^PROJ\d{5}$/], ["ssn", /^\d{3}-\d{2}-\d{4}$|\d{9}$/]];
var isValid = props.every(prop => testLength(form[prop]))
&& patts.every(([prop, regex]) => testPattern(form[prop], regex));
Идея состоит в том, что вы инициализируете переменные form
, props
и patts
только один раз, а не каждый раз, когда вам нужно выполнить проверку, хотя это не будет проблемой, если вы это сделаете.