Привет!
Не могу перевести данный кусок кода в нормальный else/if.
Видел тернарники, но такие...
Что должна возвращать эта функция одному Богу известно и автору этого скрипта.
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;
return "Y" === arProperty.MULTIPLE
? errors
: ("Y" === arProperty.REQUIRED && 0 === value.length && errors.push(field + " " + BX.message("SOA_REQUIRED")),
value.length &&
(arProperty.MINLENGTH &&
arProperty.MINLENGTH > value.length &&
errors.push(BX.message("SOA_MIN_LENGTH") + ' "' + name + '" ' + BX.message("SOA_LESS") + " " + arProperty.MINLENGTH + " " + BX.message("SOA_SYMBOLS")),
arProperty.MAXLENGTH &&
arProperty.MAXLENGTH < value.length &&
errors.push(BX.message("SOA_MAX_LENGTH") + ' "' + name + '" ' + BX.message("SOA_MORE") + " " + arProperty.MAXLENGTH + " " + BX.message("SOA_SYMBOLS")),
"Y" === arProperty.IS_EMAIL &&
((input.value = value = BX.util.trim(value)),
value.length && ((re = /^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i).test(value) || errors.push(BX.message("SOA_INVALID_EMAIL")))),
value.length > 0 && arProperty.PATTERN && arProperty.PATTERN.length && ((re = new RegExp(arProperty.PATTERN)).test(value) || errors.push(field + " " + BX.message("SOA_INVALID_PATTERN")))),
errors);
}