2011-07-19 9 views
5

私は電子メールアドレスを検証するために、この式を使用しています:電子メールアドレスのローカル部分の長さは最小要件ですか?

"^[_a-z0-9-]+(.[a-z0-9-]+)@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$"

私が検証する電子メールアドレスのために、私は@記号の前に少なくとも3つの文字を入れる必要があることに気づきました。これは必須条件ですか? @記号の前に1文字または2文字の電子メールアドレスが必要な場合はどうすればよいですか?

+0

ここにこれが見つかりました。私はどのように最小1文字を許可するように変更するか分からない。 – Xaisoft

+0

あなたはこれをどこで見つけましたか?このREGEXは、多くの理由から間違っています。 – Brad

+0

MS Outlookはあなたが 'a @ b.com'を使用することを妨げません。 –

答えて

8

1文字のみの電子メールアドレスを使用することは完全に可能です。ガイドラインのすべてがRFC822で定義されています。http://www.ietf.org/rfc/rfc0822.txt?number=822

必要REGEX:http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html

+0

これを反映するために正規表現を変更するにはどうすればよいですか? – Xaisoft

+0

最新の編集をご覧ください。ここにすべてを投稿するのは長すぎます。 – Brad

+0

はい、その正規表現は長すぎます。私が持っているものは大丈夫です、私は@の前に最低1文字を許可したいだけです。 – Xaisoft

-2

私は先に行って、このいずれかを使用することにしました:

"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$"

それは私が1以上を入力することができますローカル部分の文字。

+0

これがdownvotedされた理由の説明はいいでしょう。これは私がここで見つけたものです、私はそれが正規表現の情報からだと信じています。 – Xaisoft

+0

あなたの正規表現はあなたの問題を解決しますが、品質は非常に悪いです。 – VMAtm

+0

この場合の品質はどういう意味ですか?それが特定のアドレスと一致しないためであれば、それを品質とは定義しません。私はそれが量的側面であると言います。私が探している正規表現は、世界のすべての可能なアドレスを検証する必要はありません。それはちょうど良いだろう@記号があった場合。 – Xaisoft

1

あなたの正規表現は悪いです。あなたは本当にそれを変更する必要があります。でもMicrosoftは、より柔軟なバリエーションを提供しています:

"^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$" 

はい、それは長いです。しかし、あなたは速い開発プログラムではなく、良いプログラムを書くべきです。

+0

VMAtm、私はあなたのポイントを得るが、私はちょうど正規表現をオンラインで見つけたと気づく必要があり、それはショットを与えた。私は決してそれに尽くしていません – Xaisoft

+0

すばやく開発されたプログラムを確実に書く必要があります –

関連する問題