17

Gmail アドレスを検証する式を作成しようとしています。それが私がこれまでやってきたことです。

^([\w]*[\w\.]*(?!\.)@gmail.com)

Gmail アドレスを検証する式を作成しようとしています。それが私がこれまでやってきたことです。

しかし、それは私が望むようには機能していません。

Gmail アドレス:

  1. 最初と最後の文字は [a-z0-9] でなければなりません
  2. ユーザー名の内容のみ [a-z0-9.]
  3. ピリオドが連続することはありません (例: e..o@gmail.com[これは間違っています])。
  4. ユーザー名の長さは 6 ~ 30 文字である必要があります。

正直なところ、私は正規表現の経験があまりありません。

ところで、正規表現のドキュメントはありますか?

4

9 に答える 9

28

使用する正規表現の実装を教えていません。

^[a-z0-9](\.?[a-z0-9]){5,}@g(oogle)?mail\.com$
  • [a-z0-9]最初の文字
  • (\.?[a-z0-9]){5,}ドットが前に付いている可能性がある、少なくとも 5 つの次の英数字 (@Christopher の回答からコピーされた @Daniel のコメントを参照)
  • g(oogle)?mailgmail または googlemail (@alroc の回答を参照)

おそらく、大文字と小文字を区別しないパターン マッチングも使用したいと思うでしょう。( /.../iJavaScript で。)

于 2013-04-24T20:00:43.583 に答える
11

Gmail に一致する単純な正規表現:

^[\w.+\-]+@gmail\.com$

\w文字列の先頭に(英数字またはアンダースコア文字) または.または+または-が 1 回以上あり、その後@gmail.comに文字列の末尾が続く場合に一致します。

regexpalでテストできます。

ところで、正規表現のドキュメントはありますか?

Google はあなたの友達です :)

于 2013-04-24T19:57:15.420 に答える
5
/([a-zA-Z0-9]+)([\_\.\-{1}])?([a-zA-Z0-9]+)\@([a-zA-Z0-9]+)([\.])([a-zA-Z\.]+)/g

これは、すべての電子メール アドレスを検証する電子メール アドレスの正規表現です。

  1. ([a-zA-Z0-9]+) - az、AZ、および 0-9 を含む最初の単語に一致します
  2. ([_.-{1}]) - _, -, に一致します。最初の単語の後
  3. ? - 前のトークンの 0 (false) と 1 (true) の間で一致します。
  4. ([a-zA-Z0-9]+) - az、AZ、および 0-9 を含む 2 番目の単語に一致します
  5. \@ - 特殊文字 @ と一致します
  6. ([a-zA-Z0-9]+) - @ の後のドメイン名である単語に一致します
  7. ([.]) - 一致します。
  8. ([a-zA-Z.]+) - com、co.in、org などのメール ID の最後の単語に一致します。

ただし、gmail では他の特殊文字の使用が許可されていないため、gmail の電子メール アドレスの場合、正規表現はこれよりも簡単で、以下のようになります。

/([a-zA-Z0-9]+)([\.{1}])?([a-zA-Z0-9]+)\@gmail([\.])com/g
  1. ([a-zA-Z0-9]+) - az、AZ、および 0-9 を含む最初の単語に一致します
  2. ([.{1}]) - 一致します。最初の単語の後
  3. ? - 前のトークンの 0 (false) と 1 (true) の間で一致します。
  4. ([a-zA-Z0-9]+) - az、AZ、および 0-9 を含む 2 番目の単語に一致します
  5. \@ - 特殊文字 @ と一致します
  6. gmail - @ の後のドメイン名である gmail という単語に一致します
  7. ([.]) - 一致します。
  8. com - com になる電子メール ID の最後の最後の単語と一致します
于 2016-09-13T06:43:18.647 に答える
1

RFC 2822 では、有効な電子メール アドレスを構成するものを指定しています。これについては、こちらで説明しています。しかし、そのページに記載されているように、実際に読んでそれが何をしているのかを理解することなく、それを受け入れることはできません.

アドレスが常に で終わることを期待しているため、ここでは利点があります。@gmail.comこれにより、正規表現の範囲が縮小されます ( で分割して、@前半のみを検証できます)。

ところで、GMail は世界中の gmail.com ではありません。英国とドイツでgooglemail.comも同様です。

Web のいたるところに正規表現に関するドキュメントがたくさんありますが、使用しているライブラリ/エンジンがどのように処理するかを確認する必要があります。実装によって若干の違いがあります。

于 2013-04-24T20:04:00.470 に答える