【发布时间】:2018-10-23 09:32:36
【问题描述】:
我正在使用 RxSwift
pod 'RxSwift', '~> 4.0'
pod 'RxCocoa', '~> 4.0'
我看到了用户名、密码验证的示例,因为它的工作原理类似于
func validateUsername(_ username: String) -> Observable<ValidationResult> {
if username.isEmpty {
return .just(.empty)
}
// this obviously won't be
if username.rangeOfCharacter(from: CharacterSet.alphanumerics.inverted) != nil {
return .just(.failed(message: "Username can only contain numbers or digits"))
}
// this obviously won't be
if username.rangeOfCharacter(from: CharacterSet.alphanumerics.inverted) != nil {
return .just(.failed(message: "Username can only contain numbers or digits"))
}
let loadingValue = ValidationResult.validating
return API
.usernameAvailable(username)
.map { available in
if available {
return .ok(message: "Username available")
}
else {
return .failed(message: "Username already taken")
}
}
.startWith(loadingValue)
}
现在,我需要为电子邮件制作验证器,我在示例中没有找到任何内容如何做?
我曾经使用验证器 https://github.com/SwiftValidatorCommunity/SwiftValidator
validator.registerField(emailTextField, errorLabel: emailErrorLabel, rules: [RequiredRule(), EmailRule(message: "Invalid email")])
但是在 Rx 中,我完全不知道如何解决它?
谢谢。
【问题讨论】:
标签: swift validation email-validation rx-swift