2

挿入された電子メール アドレスに "@" と "." が含まれていることを検証する必要があります。正規表現なし。「Javaコード」と「構造図」の例を教えてください。

4

7 に答える 7

10

あなたは次のようなものを求めていると思います:

if (!address.contains("@") || !address.contains("."))
{
    // Handle bad address
}

編集:もちろん、これは完全な検証にはほど遠いです。これは検証の開始にすぎませんが、うまくいけば、これにより、処理したい特定のケースを処理できるようになります。

于 2011-05-10T20:03:12.970 に答える
3

commons-validator具体的には、EmailValidator.isValid()

于 2011-05-10T20:03:11.410 に答える
1

私の個人的な経験から、電子メール アドレスを検証する唯一の方法は、検証リンクまたはコードを含む電子メールを送信することです。多くのバリデーターを試しましたが、電子メールアドレスが非常に緩い可能性があるため、完全ではありません...

于 2011-05-10T20:04:48.447 に答える
1
int dot = address.indexOf('.');
int at = address.indexOf('@', dot + 1);

if(dot == -1 || at == -1 || address.length() == 2) {
  // handle bad address
}

これは完全な解決策ではありません。@ と「.」のみのアドレスが複数回出現していないかどうかを確認する必要があります。と '@'。

于 2011-05-10T20:42:04.877 に答える
0

JavaMailAPIを使用することもできます。具体的には、ここで:

http://javamail.kenai.com/nonav/javadocs/javax/mail/internet/InternetAddress.html#InternetAddress(java.lang.String、boolean

于 2011-05-10T20:12:51.107 に答える
0

最初の '@' を検索し、'@' の左側にあるものが有効な文字列 (つまり、スペースなどを含まない) かどうかを確認できます。その後、右側で「.」を検索し、両方の文字列をチェックして、有効なドメインを探します。

これはかなり弱いテストです。とにかく、正規表現を使用することをお勧めします。

于 2011-05-10T20:24:15.987 に答える
0

正規表現の使用が許可されていない場合は String.indexOf を使用しますが、入力中にアドレスを検証しないことをお勧めします。

アクティベーション メールを送信することをお勧めします。

于 2011-05-10T20:02:46.867 に答える