判断一个字符串,是否是Email地址(第一个和最后一个字符不能是@和.号,只能有一个@和.号,并且不能有,号,且.号必须在@后面)。

解决方案 »

  1.   

    用正则
    if(Regex.IsMatch(yourStr,@"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"))
    {
    符合
    }
    else
    {
    不符合
    }
      

  2.   

      这篇文章网上多处有转载,如中国软件:http://dev.csdn.net/article/27 /27762.shtm,但文中的正则表达式"\\w+@(\\w+.)+[a-z]{2,3}"我认为应改为:"\\w+@(\\w+\\.)+[a- z]{2,3}",因为"."可代表任意字符,是元字符,需要转义。否则,象下面这样的邮件地址也认为是有效地址了。
    C:\java>java    Test  [email protected]
    有效邮件地址下面是原文:import java.util.regex.Pattern;
    import java.util.regex.Matcher;public class Test {
        public static void main(String[] args) {
            
            if(args.length != 1) {
                System.out.println("请输入一个参数!");
                System.exit(0);
            }
            //这里和后面我已改过来了,原文为: Pattern p = Pattern.compile("\\w+@(\\w+.)+[a-z]{2,3}");
            Pattern p = Pattern.compile("\\w+@(\\w+\\.)+[a-z]{2,3}");
            Matcher m = p.matcher(args[0]);
            boolean b = m.matches();
            if(b) {
                System.out.println("有效邮件地址");
            } else {
                System.out.println("无效邮件地址");
            }
        }
      

  3.   


    可判断为空或者不符合正则
    public static bool IsEmail(string str)
        {
            System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^\w+(-\w+)*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$");
            return string.IsNullOrEmpty(str) == false && reg1.IsMatch(str);
        }
      

  4.   


        private static Regex RegEmail = new Regex("^[\\w-]+@[\\w-]+\\.(com|net|org|edu|mil|tv|biz|info)$");//w 英文字母或数字的字符串,和 [a-zA-Z0-9] 语法一样 
        /// <summary>
        /// 判断是否是Email格式
        /// </summary>
        /// <param name="inputData">字符串</param>
        /// <param name="DBNull">为空时是否做判断</param>
        /// <param name="DBNull">为空时是否做判断</param>
        /// <returns></returns>    public static bool IsEmail(string str_Text, bool DBNull)
        {
            Match m = RegEmail.Match(str_Text);
            if (DBNull && str_Text.Trim() == "")
                return false;
            else if (!DBNull && str_Text.Trim() == "")
                return true;        return m.Success;
        }            if (!IsEmail(txt_emailid.Text, true))
                {                returnStrs = "添加EmailID为空或者格式不对";
                    txt_emailid.Focus();            }