|
6 / 6 / 1
Регистрация: 20.11.2019
Сообщений: 34
|
||||||
Нужно реализовать функцию validate для проверки данных в объекте.07.03.2020, 20:08. Показов 8233. Ответов 7
Здравствуйте. мб кто поможет с решением данной задачки.Буду благодарен.
validate - валидация данных Описание Нужно реализовать функцию validate для проверки данных в объекте. На вход приходит набор данных (например, данные формы) и набор правил для валидации, описанных в определенном формате. Нужно понять, соответствуют ли данные этим правилам и, если нет, выдать информацию - какие данные каким правилам не соответствуют. Входные данные data - объект, где ключи - имена полей, а значения - значения притивных типов (не массивы/объекты) rules - объект набором правил, где ключи - имена полей, а значения - объект с правилами валидации. Правила записаны Выходные данные - объект с полями: result - булево значение, если ошибок не было - true, были - false errors - если не было ошибок - пустой массив, если были - массив объектов формата с полями: field - название поля value - значение поля rule - имя правила, которому не соответсвовало поле Пример:
Набор возможных правил (в скобках - параметр): required (bool) - поле содержится в объекте и не равно null. Если required в правилах нет - поле считается опциональным. isString (bool) - поле - это строка isNumber (bool) - поле - это корректное число isBoolean (bool) - поле - это булево значение minLength (number) - поле - это строка с длиной больше или равной параметру maxLength (number) - поле - это строка с длиной меньше или равной параметру min (number) - поле - это число больше или равное параметру max (number) - поле - это число меньше или равное параметру isEmail (bool) - поле - корректный email (базовая проверка на корректность, без сложных случаев)
1
|
||||||
| 07.03.2020, 20:08 | |
|
Ответы с готовыми решениями:
7
Как изменить функцию для проверки вводимых данных? |
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
||||||
| 07.03.2020, 21:07 | ||||||
|
Здравствуйте.
Валидация данных пользователя Добавлено через 12 минут Вот здесь вопросы: isString (bool) - поле - это строка isNumber (bool) - поле - это корректное число isBoolean (bool) - поле - это булево значение isString: false - буквально нужно ставить false? То есть при false мы считаем, что строго не является строкой? Тогда мой алгоритм нужно сделать более строгим на проверку false во всех правилах. Добавлено через 10 минут ---- Вот с исправлениями для обязательного false везде:
0
|
||||||
|
6 / 6 / 1
Регистрация: 20.11.2019
Сообщений: 34
|
|
| 07.03.2020, 21:27 [ТС] | |
|
amr-now, Спасибо тебе за твой старания, но программа все равно не валидирует, выдаёт вот такие ошибки.
1
|
|
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 08.03.2020, 06:58 | |
|
badman4235, нормально покажите тестируемые данные и скрипты тестов.
Добавлено через 11 минут ---- Это что за бред? Смотрите четвертую картинку: {name: null} {isString: true, required: true} Expected: result: true Received: result: false В условии же написано: required (bool) - поле содержится в объекте и не равно null.
0
|
|
|
6 / 6 / 1
Регистрация: 20.11.2019
Сообщений: 34
|
|
| 08.03.2020, 08:05 [ТС] | |
|
amr-now, Вот ссылка ещё на задачку https://repl.it/@maxJnyk/validate-3
1
|
|
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
||||||||||||||||
| 08.03.2020, 22:10 | ||||||||||||||||
Сообщение было отмечено badman4235 как решение
Решение
badman4235, готово.
Исправления: 1) NaN в задаче не должно считаться числом, хотя в действительности это именно число (специальное значение числа) 2) Раньше у меня на первой попавшейся ошибке для одного свойства дальнейший поиск ошибок прекращался. А сейчас собираются все допустимые по здравому смыслу ошибки. То есть required всё равно главное правило.
![]() Была ошибка в самом тесте:
1
|
||||||||||||||||
|
6 / 6 / 1
Регистрация: 20.11.2019
Сообщений: 34
|
|
| 08.03.2020, 22:38 [ТС] | |
|
amr-now, Спасибо вам большое за ваш труд. Хотел бы по подробнее у вас поинтересоваться по решению данной задачи. От копипаста толку потому что ноль.
0
|
|
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|||||||||||||||||||||
| 09.03.2020, 11:28 | |||||||||||||||||||||
|
badman4235, наконец-то найден ответ, что такое корректное число.
validate.js
Правильное тестирование для корректного числа: validate.test.js
Для числа-примитива и числа-объекта, не являющегося NaN, Infinity и -Infinity:
![]() Огромное спасибо! Наконец-то мы поняли, что такое корректное число.
2
|
|||||||||||||||||||||
| 09.03.2020, 11:28 | |
|
Помогаю со студенческими работами здесь
8
Класс File, реализовать event для реагирования на изменения в объекте Реализовать функцию для вывода большого массива данных постранично Реализовать функцию проверки правильности html-тэгов в html-документе Реализовать функцию разложения числа на цифры и проверки деления исходного числа на каждую цифру Нужно реализовать функцию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|