2014-10-17 44 views
0

我需要验证一个以alphabat开头并以@gmail.com结尾的电子邮件模式。以下是我的代码。在java中验证电子邮件格式

public static boolean isValidEmail(String email) 
{ 
    String endPattern = "@gmail.com"; 

    if(null == email){ 
     return false; 
    } 
    if(email.length()<10){ 
     return false; 
    } 
    if(!email.endsWith(endPattern)){ 
     return false; 
    } 
    String[] strArr = email.split(endPattern); 
    String mailId = strArr[0]; 
    if(!Character.isLetter((mailId.charAt(0)))){ 
     return false; 
    } 
    return true; 
    } 

有没有更好的办法达到这个目标?正则表达式还是更好的代码?

回答

3

使用正则表达式

public static boolean isValidEmail(String email) 
{ 
    if (email != null) 
    { 
     Pattern p = Pattern.compile("^[A-Za-z].*[email protected]\\.com$"); 
     Matcher m = p.matcher(email); 
     return m.find(); 
    } 
    return false; 
} 
0

根据th Ë谷歌,

的e-mail地址

  • 应以字母或数字
  • 开始只能包含字母(A-Z),数字和英文句号。
  • 至少应为6个字符

正则表达式应该是

Pattern p = Pattern.compile("^[_A-Za-z0-9]+[\\.[A-Za-z0-9]{5,}@gmail\\.com$"); 
+0

方式过于限制,除非的Gmail有着严格的要求在某处列出。 – nablex 2014-10-17 11:18:38

+0

根据Google,您只能使用字母(a-z),数字和句点。 – 2014-10-17 11:19:42

+0

不错,不知道,是否有链接到这个要求? (供将来参考) – nablex 2014-10-17 11:20:46

1
public class Main { 

public static void main(String[] args) { 

    String EMAIL_REGEX = "^[\\w-_\\.+]*[\\w-_\\.]\\ 
    @([\\w]+\\.)+[\\w]+[\\w]$"; 
    String email1 = "[email protected]"; 
    Boolean b = email1.matches(EMAIL_REGEX); 
    System.out.println("is e-mail: "+email1+" :Valid = " + b); 
    String email2 = "user^domain.co.in"; 
    b = email2.matches(EMAIL_REGEX); 
    System.out.println("is e-mail: "+email2 
    +" :Valid = " + b); 
    } 
} 
1
package com.mkyong.regex; 

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class EmailValidator { 

    private Pattern pattern; 
    private Matcher matcher; 

    private static final String EMAIL_PATTERN = 
     "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" 
     + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; 

    public EmailValidator() { 
     pattern = Pattern.compile(EMAIL_PATTERN); 
    } 

    /** 
    * Validate hex with regular expression 
    * 
    * @param hex 
    *   hex for validation 
    * @return true valid hex, false invalid hex 
    */ 
    public boolean validate(final String hex) { 

     matcher = pattern.matcher(hex); 
     return matcher.matches(); 

    } 
} 
-1

这是JavaScript代码

  <script> 
    function checkEmail() 
     { 
    var feedback=""; 
    var email=document.getElementById("email").value; 
    var count=email.length; 
    var atpos=email.indexOf('@'); 
    var atdot=email.lastIndexOf('.'); 
    var tld=email.substring(atdot); 
    if(atpos<1 || atdot<1) 
    { 
    alert("Email is Not Valid"); 
    } 
     else if(atpos>atdot) 
    { 
    alert("Email is Not Valid"); 
    } 
    else{ 
    alert("Email is Valid"); 
     } 
     } 
+0

'Javascript!= Java' – funkwurm 2014-10-17 11:31:40

+0

Clientside!= Serverside – nablex 2014-10-17 12:23:18