次のクエリを、多くの異なる間違った有効な電子メールアドレスでテストしました。それは仕事をする必要があります。
IF (
CHARINDEX(' ',LTRIM(RTRIM(@email_address))) = 0
AND LEFT(LTRIM(@email_address),1) <> '@'
AND RIGHT(RTRIM(@email_address),1) <> '.'
AND CHARINDEX('.',@email_address ,CHARINDEX('@',@email_address)) - CHARINDEX('@',@email_address ) > 1
AND LEN(LTRIM(RTRIM(@email_address ))) - LEN(REPLACE(LTRIM(RTRIM(@email_address)),'@','')) = 1
AND CHARINDEX('.',REVERSE(LTRIM(RTRIM(@email_address)))) >= 3
AND (CHARINDEX('[email protected]',@email_address ) = 0 AND CHARINDEX('..',@email_address ) = 0)
)
print 'valid email address'
ELSE
print 'not valid'
これらの条件をチェックします:
- 埋め込みスペースはありません
- 「@」をメールアドレスの最初の文字にすることはできません
- '。'メールアドレスの最後の文字にすることはできません
- 「。」が必要です。 '@'の後のどこか
- 「@」記号を使用できます
- ドメイン名は少なくとも2文字の拡張子で終わる必要があります
- 「[email protected]」や「..」のようなパターンは使用できません