Перевод тернарной бороды в человеко-понятный else/if
Привет!
Не могу перевести данный кусок кода в нормальный 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); } |
Я к нему обращаюсь в таких случаях
Нейросеть[помощник программиста] - https://www.blackbox.ai/ |
Сгенерировано сервисом, который посоветовал 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; } |
До чего техника дошла..
Спасибо огромное! |
Часовой пояс GMT +3, время: 22:06. |