【发布时间】:2021-02-21 00:02:36
【问题描述】:
我有一个忘记密码的文本字段,在这里用户输入手机号码或电子邮件,然后我们发送 OTP。
我正在尝试使用我的代码验证该文本字段,但它不起作用,任何人对此有一些想法,请通过以下方式找到我的代码。
它需要对 mailid 或电话号码格式有效。
if emaiTF.text == "" {
print("Enter either valid phone or email")
}else if let validphone = emaiTF.text, validphone.isValidPhone() || validphone.isValidEmail() {
print("Enter either valid phone or email")
}else{
forGotPasswordApi()
}
我的验证方法如下。
extension String {
func isValidEmail() -> Bool {
// here, `try!` will always succeed because the pattern is valid
let regex = try! NSRegularExpression(pattern: "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$", options: .caseInsensitive)
return regex.firstMatch(in: self, options: [], range: NSRange(location: 0, length: count)) != nil
}
// vrify Valid PhoneNumber or Not
func isValidPhone() -> Bool {
let phoneRegex = "^[0-9]{10}$";
let valid = NSPredicate(format: "SELF MATCHES %@", phoneRegex).evaluate(with: phoneRegex)
return valid
}
}
【问题讨论】:
-
我已在下面的答案中修改并添加了您的代码补丁。请检查,如果它对您有用,请接受,以便其他人可以从中受益!!
标签: ios swift validation