-1

C# の初心者で、問題があるようです。メールアドレスを検証する以下のコードを持つプログラムを修正しています。

public static bool IsValidEmail(string sEmail)
    {
        sEmail = sEmail.Trim();
        if (sEmail == string.Empty)
        {
            return false;
        }
return (Regex.IsMatch(sEmail, @"^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@"
                       + @"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\."
                       + @"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|"
                       + @"([a-zA-Z]+[\w-]*\.)+[a-zA-Z]{1,4})$"));

これが実装されてから、電子メールの検証が変更され、@ と . アドレスで。

私は試した:

   public static bool IsValidEmail(string sEmail)
     if ((sEmail.IndexOf("@") != -1) & (sEmail.IndexOf(".") != -1))
        {
            return true;
        }
        else
        {
            return false;
        }

しかし、現在は有効なアドレスである必要があります。つまり、name+@domain.com はまだ悪いものとして受信されています。

どんな助けでも大歓迎です。

4

2 に答える 2

0

この解決策を試してください:

    protected override bool EvaluateIsValid()
    {
        string val = this.GetControlValidationValue(this.ControlToValidate);
        string pattern = @"^[a-z][a-z|0-9|]*([_][a-z|0-9]+)*([.][a-z|0-9]+([_][a-z|0-9]+)*)?@[a-z][a-z|0-9|]*\.([a-z][a-z|0-9]*(\.[a-z][a-z|0-9]*)?)$";
        Match match = Regex.Match(val.Trim(), pattern, RegexOptions.IgnoreCase);

        if (match.Success)
            return true;
        else
            return false;
    }
于 2013-04-03T12:16:39.647 に答える