0

重複の可能性:
正規表現を使用して電子メール アドレスを検証する 電子
メールの検証 - 正規表現

以下の正規表現を使用して、電子メール アドレスを検証します。しかし、この正規表現では "*" または "/" が受け入れられることがわかりましたが、受け入れるべきではありません!

Regex.IsMatch(email, 
   @"^(?("")(""[^""]+?""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
   @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9]{2,17}))$",
   RegexOptions.IgnoreCase, 
   TimeSpan.FromMilliseconds(250));

「*」または「/」を許可しないように RE を改善するためにあなたの助けが必要です 参考までに、上記のコードは C# です

4

1 に答える 1

1

あなたは大きな修正が必要です..

電子メール アドレスの正規表現を検証する場合は、適切な選択ではありません。

SLaksが推奨するMailAddressを使用する

try 
{
   address = new MailAddress(address).Address;
   //address is valid here
} 
catch(FormatException) 
{
   //address is invalid
}

しかし、正規表現にハマっている場合は、これを実行してください

.*@.*
于 2013-01-26T10:30:19.793 に答える