2

メールアドレスからすべての無効な文字を削除する方法を見つけようとしています。

例: email="taeo͝';st@yy.com" (. は電子メールの文字)、結果は次のようになります: email = "taest@yy.com"

次の電子メール パターンを使用しています。

String email_pattern = "^[^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$]";

String modifiedEmail = email.replaceAll(email_pattern,"");

しかし、上記のコードは結果を示しています: email = "aest@yy.com" but expected "taest@yy.com"

任意の提案またはより良いアプローチをいただければ幸いです。

4

3 に答える 3

11

メールアドレスをフィルタリングしてはいけない理由については、次のブログ記事をご覧ください: http://davidcel.is/blog/2012/09/06/stop-validating-email-addresses-with-regex/

TL;DR: @ (任意でピリオド) があるかどうかを確認し、テスト メールを送信します。
David は、次の正規表現を使用することを提案しています。

/.+@.+\..+/
于 2012-12-26T21:52:52.637 に答える
1

パターンマッチャーを使用して解決しました。

email = "testo͝';@.com.my"   
String EMAIl_PATTERN = "[^a-zA-Z0-9!#$%&@'*+-/=?^_`{|}~.]+";
modifiedEmail = email.replaceAll(EMAIl_PATTERN, "");
于 2012-12-27T17:33:36.030 に答える
0

さらに考えてみましょう: 認証なしで使用される電子メール アドレスの既知のプロバイダーをテストすることもできます (例: http://trashmail.com/ )。

于 2012-12-26T22:36:47.023 に答える