Swift:IF语句中的多个条件
问题描述:
我目前正在尝试使用具有多个条件的if语句验证注册页面。Swift:IF语句中的多个条件
与此同时,我想用正确的电子邮件格式验证电子邮件地址。
下面是每个字段应该基本检查。
@IBAction func createAccountButton(_ sender: Any) {
//check if textfields are empty and display alert
let providedEmailAddress = emailTextField.text
let isEmailAddressValid = isValidEmailAddress(emailAddressString: providedEmailAddress!)
if (isEmailAddressValid || (firstNameTextField.text?.isEmpty)! || (lastNameTextField.text?.isEmpty)! || (usernameTextField.text?.isEmpty)! || (phoneNumberTextField.text?.isEmpty)! || (passwordTextField.text?.isEmpty)!) {
let alertViewController = SCLAlertView().showInfo("Failed to create account", subTitle: "One or more fields are empty, please check and try again.")
} else {
SVProgressHUD.show(withStatus: "Creating account...")
SVProgressHUD.dismiss(withDelay: 4)
}
}
变量isEmailAddressValid
链接到这个功能我就this site找到。
// Check if email address entered is of the valid format
func isValidEmailAddress(emailAddressString: String) -> Bool {
var returnValue = true
let emailRegEx = "[A-Z0-9a-z.-_][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,3}"
do {
let regex = try NSRegularExpression(pattern: emailRegEx)
let nsString = emailAddressString as NSString
let results = regex.matches(in: emailAddressString, range: NSRange(location: 0, length: nsString.length))
if results.count == 0
{
returnValue = false
}
} catch let error as NSError {
print("invalid regex: \(error.localizedDescription)")
returnValue = false
}
return returnValue
}
不过,测试时,我意识到,当我在各个领域,除了emailTextfield.text
输入一个值,然后单击创建一个帐户,执行该语句的else
一部分。
此外,当所有字段都有值时,我会假设else
部分语句将执行,但会显示'未能创建帐户'警报。
我在做什么错,需要改变什么?
答
你应该
if (!isEmailAddressValid |
这工作完全替代这部分
。 – daanyyaal
@daanyyaal所以接受的答案 – Vyacheslav
添加什么!在前面呢?将它添加到最终力量解开。 – daanyyaal