0

この正規表現を使用すると、電子メールが有効かどうかを簡単に確認できます。

RegExp(/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/);

ただし、これはそのようなアドレスに対してはtrueを返します。

example@example.com

私も受け入れたい:

*@example.com

RegExpに適用する必要のある変更は何ですか?

前もって感謝します

4

3 に答える 3

3

質問に文字通り答えるには、正規表現を「拡張」できます。

RegExp(/^([\w.*-]+@([\w-]+\.)+[\w-]{2,4})?$/);

しかし、これは電子メールの検証にはひどい正規表現です。正規表現は、これには不適切なツールです。なぜこのようにすることに固執するのですか?

于 2012-09-24T11:53:09.477 に答える
1

メールアドレスの確認はそれほど簡単ではありません。RFC 822、秒 6.1

http://www.regular-expressions.info/email.htmlで正規表現の適切なリストを見つけることができ、RFC 準拠と実用性の間のトレードオフを説明しています。

于 2012-09-24T12:00:56.870 に答える
1

いくつかのこと:受け入れる*@foo.bar

var expression = /^([\w-\.*]+@([\w-]+\.)+[\w-]{2,4})?$/;//no need to pass it to the RegExp constructor

しかし、この式は を受け入れ-@-.--ますが、繰り返しますが、正規表現と電子メールはすべてがあまり良い友達ではありません。しかし、あなたの表現に基づいて、信頼性の低いバージョンを次に示します。

var expression = /^[\w-\.\d*]+@[\w\d]+(\.\w{2,4})$/;

ただし、ネット上のどこかに、すべての有効な種類の電子メール アドレスを検証する式があります。それを調べて、正規表現の検証がほとんどの場合、有効な入力を除外するか、寛容すぎる理由を確認してください

于 2012-09-24T12:03:33.867 に答える