iOS
 Computer >> コンピューター >  >> プログラミング >> iOS

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を組み合わせれば、ごく少量のコードでメールアドレスや電話番号のバリデーションを実現でき、保守性の高いアプリ開発につながります。

  1. ZeroBounceでメールアドレスを検証して、メールマーケティングの成果を最大化する方法

    本記事はZeroBounce提供のスポンサー記事です。記事の内容および見解は、スポンサーが付いた場合でも、編集の独立性を保つ著者自身のものです。 オンラインビジネスを運営しているなら、ユーザーのメールアドレスを収集し、メールマーケティングを通じて購読者に再訪を促していることでしょう。メールデータベースには数千、場合によっては数百万件ものメールアドレスが蓄積されているはずです。しかし、そのうち何件が有効なアドレスなのか、把握できていますか? 実は、オンラインの登録フォームはスパムボットにとって格好の標的であり、気づかないうちにデータベースには無効なアドレスやスパムアドレスが大量に混入しているこ

  2. Androidスマホにメールアカウントを追加する方法【Gmail・標準メール・Outlook対応】

    スマートフォンは今や日常生活に欠かせないツールとなり、娯楽だけでなくビジネスや生産性向上にも広く活用されています。複数のメールアカウントをスマホで一元管理できれば、業務効率は大幅にアップします。本記事では、Android端末で主要なメールアプリ(標準メールアプリ、Gmailアプリ、Outlookアプリ)にメールアカウントを追加する手順を、自動設定・手動設定の両面から詳しく解説します。 自動設定と手動設定の違い ほぼすべてのメールアプリで、アカウント追加には「自動設定」と「手動設定」の2通りの方法があります。 自動設定 メールアドレスとパスワードを入力するだけで、サーバー設定などをアプリが自動