Swiftでメールアドレスと電話番号の形式を検証する方法
Swiftでメールアドレスや電話番号の形式を検証する際、if文などの条件分岐を組み合わせる方法もありますが、メールアドレスの検証だけでも50〜100行もの条件式が必要になることがあり、コードが非常に冗長になってしまいます。
そこで本記事では、条件分岐の代わりに正規表現を使う方法をご紹介します。SwiftではNSPredicateを利用することで、正規表現を評価し、文字列が指定したパターンに一致するかどうかを簡単に判定できます。
String型の拡張として検証機能を実装する
まずは、プロジェクト全体で再利用できるよう、Stringクラスの拡張として検証ロジックを作成しましょう。既存の任意のクラスに以下のコードを追加しても構いませんし、拡張専用のSwiftファイルを新規作成して管理するのもおすすめです。
extension String {
var isValidEmail: Bool {
let regularExpressionForEmail = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"
let testEmail = NSPredicate(format:"SELF MATCHES %@", regularExpressionForEmail)
return testEmail.evaluate(with: self)
}
var isValidPhone: Bool {
let regularExpressionForPhone = "^\\d{3}-\\d{3}-\\d{4}$"
let testPhone = NSPredicate(format:"SELF MATCHES %@", regularExpressionForPhone)
return testPhone.evaluate(with: self)
}
}正規表現パターンのポイント
- メールアドレス:
[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,64}— ローカル部分・@マーク・ドメイン名・トップレベルドメイン(2〜64文字)という標準的な構成をチェックします。 - 電話番号:
^\d{3}-\d{3}-\d{4}$— 「000-000-0000」形式(ハイフン区切りの米国式)の電話番号に一致します。必要に応じてパターンを変更すれば、日本の電話番号形式にも対応可能です。
検証機能の使い方
作成した拡張プロパティは、ViewControllerなどから文字列に対して直接呼び出すことができます。
override func viewDidLoad() {
super.viewDidLoad()
print("11f".isValidEmail)
print("abc@xuyz.com".isValidEmail)
print("8892".isValidPhone)
print("998-877-2211".isValidPhone)
}実行結果
上記のコードを実行すると、コンソールには次のような出力が表示されます。
false true false true
不正な形式の値にはfalse、正しい形式の値にはtrueが返されているのが分かります。このように、正規表現とNSPredicateを組み合わせれば、ごく少量のコードでメールアドレスや電話番号のバリデーションを実現でき、保守性の高いアプリ開発につながります。
-
ZeroBounceでメールアドレスを検証して、メールマーケティングの成果を最大化する方法
本記事はZeroBounce提供のスポンサー記事です。記事の内容および見解は、スポンサーが付いた場合でも、編集の独立性を保つ著者自身のものです。 オンラインビジネスを運営しているなら、ユーザーのメールアドレスを収集し、メールマーケティングを通じて購読者に再訪を促していることでしょう。メールデータベースには数千、場合によっては数百万件ものメールアドレスが蓄積されているはずです。しかし、そのうち何件が有効なアドレスなのか、把握できていますか? 実は、オンラインの登録フォームはスパムボットにとって格好の標的であり、気づかないうちにデータベースには無効なアドレスやスパムアドレスが大量に混入しているこ
-
Androidスマホにメールアカウントを追加する方法【Gmail・標準メール・Outlook対応】
スマートフォンは今や日常生活に欠かせないツールとなり、娯楽だけでなくビジネスや生産性向上にも広く活用されています。複数のメールアカウントをスマホで一元管理できれば、業務効率は大幅にアップします。本記事では、Android端末で主要なメールアプリ(標準メールアプリ、Gmailアプリ、Outlookアプリ)にメールアカウントを追加する手順を、自動設定・手動設定の両面から詳しく解説します。 自動設定と手動設定の違い ほぼすべてのメールアプリで、アカウント追加には「自動設定」と「手動設定」の2通りの方法があります。 自動設定 メールアドレスとパスワードを入力するだけで、サーバー設定などをアプリが自動