ホームページ >バックエンド開発 >Golang >Golang で正規表現を使用してメール アドレスの正当性を検証する方法

Golang で正規表現を使用してメール アドレスの正当性を検証する方法

WBOY
WBOYオリジナル
2023-06-24 09:47:451391ブラウズ

Golang では正規表現を使用してメール アドレスの正当性を確認することが一般的な要件です。この記事では、golang で正規表現ライブラリを使用してこの機能を実装する方法を紹介します。

電子メール アドレスの正当性を確認するにはどうすればよいですか?

正規表現を使用して golang で電子メール アドレスの正当性を検証する方法を紹介する前に、電子メール アドレスを検証するためのルールを理解する必要があります。電子メール アドレスには通常、ユーザー名、@ 記号、ドメイン名の 3 つの部分が含まれます。ユーザー名とドメイン名には独自のルールがあります。

  • ユーザー名の規則: ユーザー名は文字、数字、アンダースコア、ピリオドで構成されます。複数のピ​​リオドを含めることはできますが、ピリオドで開始または終了したり、2 つのピリオドを連続して使用したりすることはできません。
  • ドメイン名の規則: ドメイン名は文字、数字、ピリオドで構成されます。複数のピ​​リオドを含めることはできますが、ピリオドで開始または終了したり、2 つのピリオドを連続して使用したりすることはできません。ドメイン名の最後の部分は、第 2 レベルまたは第 3 レベルのドメイン名である必要があります。通常、第 2 レベルのドメイン名のサフィックスは .com、.net、.org などで、第 3 レベルのドメイン名のサフィックスは次のとおりです。ドメイン名は通常、.cn、.edu、.gov などです。

上記のルールにより、電子メール アドレスを検証するための正規表現、つまり

^[a-zA-Z0-9_] (. )@ を要約できます。 [a-zA-Z0-9] (. ).{2,3}$

この正規表現の意味は次のとおりです。

  • ^ は、文字列の先頭。
  • [a-zA-Z0-9_] は、少なくとも 1 つの文字、数字、またはアンダースコアを意味します。
  • (. )* は、複数のピリオドの後に文字、数字、またはアンダースコアを続けることができることを意味します。
  • @ は @ 記号を表します。
  • [a-zA-Z0-9] は、少なくとも 1 つの文字または数字を意味します。
  • (. )* は、複数のピリオドの後に文字または数字を続けることができることを意味します。
  • [.]はピリオドを表します。
  • [a-zA-Z]{2,3} は、最後の部分が 2 文字または 3 文字でなければならないことを意味します。

Golang で正規表現を使用してメール アドレスの正当性を確認するにはどうすればよいですか?

Golang には正規表現を簡単に使用できる正規表現パッケージが組み込まれています。以下は、正規表現パッケージを使用して電子メール アドレスを検証するための実装コードです:

package main

import (
    "fmt"
    "regexp"
)

func IsEmailValid(email string) bool {
    emailRegex := "^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*@[a-zA-Z0-9]+([.][a-zA-Z0-9]+)*[.][a-zA-Z]{2,3}$"
    match, err := regexp.MatchString(emailRegex, email)
    if err != nil {
        fmt.Println(err)
        return false
    }
    return match
}

func main() {
    email := "test@gmail.com"
    if IsEmailValid(email) {
        fmt.Println("Valid email address: ", email)
    } else {
        fmt.Println("Invalid email address: ", email)
    }
}

上記のコードでは、電子メール アドレスの正当性を検証するための IsEmailValid 関数を定義します。この関数では、regexp.MatchString 関数を使用して、指定された電子メール アドレスが正規表現と一致するかどうかを判断します。

regexp.MatchString 関数は、照合時に正規表現の前後に ^ および $ 記号を自動的に追加することに注意してください。したがって、これら 2 つの記号を正規表現に追加する必要はありません。

指定された電子メール アドレスが正規表現に一致する場合は true を返し、そうでない場合は false を返します。

概要

この記事では、golang の正規表現ライブラリを使用してメール アドレスの正当性を検証する方法を紹介します。正規表現は単なるツールであり、さまざまな問題を解決するにはさまざまな正規表現を使用する必要があることに注意してください。実際に使用する場合には、パフォーマンスやセキュリティなどの問題も考慮する必要があります。

以上がGolang で正規表現を使用してメール アドレスの正当性を検証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。