-2
現在、複数の条件の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
の部分で実行されると思われますが、代わりに「アカウントを作成できませんでした」という警告が表示されます。
何が間違っていて、何を変更する必要がありますか?
でこの部分
を交換する必要があります。 – daanyyaal
@daanyyaalので答えを受け入れる – Vyacheslav
何を追加しますか!正面でやる?それをエンド・フォースに追加すると、アンラップされます。 – daanyyaal