Swift正規表現でメールアドレスをチェックする

f:id:daihase:20190809100049p:plain

こんにちは、daihaseです。

今日はSwiftでのメールアドレスのバリデーションについて。ツール系アプリなんかでも最初ログインする際にメールアドレス形式かどうかをチェックすることがありますよね。

サーバー側でやるかクライアント側でやるかにもよるのですが、とりあえず今回はiOSのアプリ側でやってみます。

 

こんな感じでUtilクラスなんかにメールアドレス形式の文字列がわたってきたかどうかを判定するメソッドを定義します。

class func isValidEmail(_ string: String) -> Bool {
        let emailRegEx = "[A-Z0-9a-z._+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"
        let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
        let result = emailTest.evaluate(with: string)
        return result
 }

 

使い方は、下記のようにUITextFieldのtextプロパティをセットする感じですね。

if self.isValidEmail(self.mailTextField.text!) {
        // メールアドレスが正しく入力された場合
 
    } else {
        // メールアドレスが正しく入力されなかった場合
 
    }

 

ただログインなんかのアラート文言はサーバーから返すことが多いので、僕だったらサーバー側でValidationかけて対応しちゃうかも...

それでは良い開発ライフを〜