Сгенерировано сервисом, который посоветовал
deniscikasov@gmail.com, и вроде нормально заменил тернарные операторы на классические if else:
function validateString(input, arProperty, fieldName) {
if (!input || !arProperty) return [];
var value = input.value,
errors = [],
name = BX.util.htmlspecialchars(arProperty.NAME),
field = fieldName ? BX.message("SOA_FIELD") + ' "' + name + '"' : BX.message("SOA_FIELD"),
re;
if (arProperty.MULTIPLE === "Y") {
// Do nothing, just return the empty errors array
return errors;
}
if (arProperty.REQUIRED === "Y" && value.length === 0) {
errors.push(field + " " + BX.message("SOA_REQUIRED"));
}
if (value.length > 0) {
if (arProperty.MINLENGTH && arProperty.MINLENGTH > value.length) {
errors.push(BX.message("SOA_MIN_LENGTH") + ' "' + name + '" ' + BX.message("SOA_LESS") + " " + arProperty.MINLENGTH + " " + BX.message("SOA_SYMBOLS"));
}
if (arProperty.MAXLENGTH && arProperty.MAXLENGTH < value.length) {
errors.push(BX.message("SOA_MAX_LENGTH") + ' "' + name + '" ' + BX.message("SOA_MORE") + " " + arProperty.MAXLENGTH + " " + BX.message("SOA_SYMBOLS"));
}
if (arProperty.IS_EMAIL === "Y") {
input.value = value = BX.util.trim(value);
if (value.length > 0 && !(/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i).test(value)) {
errors.push(BX.message("SOA_INVALID_EMAIL"));
}
}
if (arProperty.PATTERN && arProperty.PATTERN.length > 0) {
re = new RegExp(arProperty.PATTERN);
if (!re.test(value)) {
errors.push(field + " " + BX.message("SOA_INVALID_PATTERN"));
}
}
}
return errors;
}