Проверьте, что ввод данных пользователем корректен [дубликат]

Краткий ответ - нет, нет способа вернуть преобразованный объект поведения.

Сначала нужно определить выход, на который вы хотите повлиять, а затем выяснить, какие входы влияют на него. map пойдет между ними. Например:

myTextField.rx.text.orEmpty
    .map { [110].trimmingCharacters(in: CharacterSet.whitespaces)
    .bind(to: username)
    .disposed(by: disposeBag)

Если вы хотите, чтобы имя пользователя было выходным, или

username.asObservable() // I'm not sure if the asObservable() is actually necessary at the moment. Check that.
    .map { [111].trimmingCharacters(in: CharacterSet.whitespaces)
    .bind(to: myLabel.rx.text)
    .disposed(by: disposeBag)

, если вы хотите, чтобы имя пользователя было входным.

Для создания username просто используйте let username = BehaviorSubject<String>()

9
задан codeforester 31 August 2019 в 18:55
поделиться

2 ответа

Используйте цикл while

number=""
while [[ ! $number =~ ^[0-9]+$ ]]; do
    echo Please enter your age
    read number
done
echo You are $number years old
19
ответ дан 4 December 2019 в 07:05
поделиться

И чтобы избежать тяжелого механизма регулярных выражений, используйте простой глобус:

if [[ ! $input || $input = *[^0-9]* ]]; then
    echo "Error: '$input' is not a number." >&2
fi
8
ответ дан 4 December 2019 в 07:05
поделиться
Другие вопросы по тегам:

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