169 похожих чатов

Может кто подсказать, валидция с помощью YUP. у меня есть форма

входа,которая принимает 2 инпута email/username и password.
вход можно совершить с помощью email или username
как вообще валидировать поле где разрешени и username и email?
можно ли как-то переключать валидации? может как-нибудь через when?

на данный момент имею:
export const buildLoginSchema = (t) => yup.object().shape({
loginCredentials: yup
.string()
.matches(/^[a-zA-Z0-9@.\-_]+$/, t('errors:username.InvalidUsername'))
.required(t('errors:credentials.MissingCredentials')),
password: validatePassword(t),
});

4 ответов

11 просмотров

в твоем случае нет же признака никакого, что введет пользователь - еймейл или юзернейм, как ты тут when прикрутишь? пиши регэксп который схавает и то и то

Sergey-Rozum Автор вопроса
Denys Mikhalenko
в твоем случае нет же признака никакого, что введе...

Суть в том,что email может содержать спец. символы, а username - нет

можешь добавить кастомное правило yup.addMethod(yup.string, ‘login’, function () { return this.transform(function (value) { return value.email() || // username logic }) })

Похожие вопросы

Обсуждают сегодня

Ребят в СИ можно реализовать ООП?
Николай
33
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
core\config\database\connections\default.php На всякий случай проверь всё же файл <?php return [ 'driver' => env('DB_TYPE', 'mysql'), //$database_type 'host' => env('D...
Andrey K
2
Всем доброго вечера. Разрабатываю 32 раз. приложение в Delphi. Столкнулся с тем, что стандартный  TFilestream  не работает с большим файлом > 2 ГБайт (после вызова функции see...
Vadim Gl
16
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
добрый день. Подскажите, есть сайт на 1.4.7 и я хочу обновиться, особо ничего не меняя. мне выбирать версию 1.4.35 или третью ветку? и можно ли обновлять "как есть", или нужно...
Digital Cat
12
народ, плиз хелп, всю голову сломал себе уже... разве может быть так, что GetProcAddress( GetModuleHandle( "kernel32.dll" ), "SetThreadDescription" ) вернёт ненулевое значение...
Iluha Companets
12
Кто кодит под Лазарем на винде, у вас аналогично VCL переопределяются CreateWnd и CreateParams для конкретных классов контролов и все заданные флаги влияют?
А Андрей
11
У меня задача: написать брокер сообщений. Очереди и потребители. Очереди поддерживают приоритеты. Очередь отдает сообщения, только обработчикам с соответствующими характеристи...
Aleksandr Filippov
2
Карта сайта