Ich versuche derzeit eine Anmeldeseite mit einer if-Anweisung mit mehreren Bedingungen zu validieren.Swift: Mehrere Bedingungen in IF-Anweisung
Gleichzeitig möchte ich die E-Mail-Adresse mit einem korrekten E-Mail-Format validieren.
Unten sollte jedes Feld im Wesentlichen überprüft werden.
@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)
}
}
Die Variable isEmailAddressValid
ist auf diese Funktion, die ich auf this site gefunden verknüpft.
// 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
}
jedoch bei der Prüfung erkannte ich, wenn ich einen Wert in jedem Feld mit Ausnahme des emailTextfield.text
geben Sie ein Konto, das else
Teil der Aussage erstellen ausgeführt wird.
Darüber hinaus, wenn alle Felder einen Wert haben, würde ich annehmen, dass der else
Teil der Anweisung wird ausgeführt werden, aber die Meldung "Fehler beim Erstellen eines Kontos" wird stattdessen angezeigt.
Was mache ich falsch und was muss geändert werden?
ersetzen, die perfekt funktioniert. – daanyyaal
@daanyyaal so akzeptieren Sie die Antwort – Vyacheslav
Was bedeutet das Hinzufügen der! an der Front tun? Hinzufügen zu der Endkraft entfaltet. – daanyyaal