2013-02-12 75 views
0

我正在尝试编写一个Java方法来检查电子邮件格式。用户不应该被允许在硬编码的电子邮件值下面提到的字段中输入任何其他内容。所以布尔方法应该返回false值。如何限制用户输入除电子邮件格式之外的其他任何信息

但不知何故,这似乎并没有为我工作。在这种情况下,它总是对我来说是正确的。 你能否纠正我的错误?或者你可以给我建议另一种解决方案吗?

public static boolean isValidEmailAddress(String email) { 
    boolean result = true; 
    email = "[email protected]" + "\'" + "\"" + "onmouseover=" + "\"" + "alert(20)" + "\"" + "\""; 

    try { 
     InternetAddress emailAddr = new InternetAddress(email); 
     emailAddr.validate(); 
    } catch (AddressException ex) { 
     result = false; 
    } 
    return result; 
} 

回答

0

我相信你可以使用正则表达式是这样的:

import java.util.regex.Pattern; 

public class Email { 

    private static final Pattern EMAIL_REGEX = Pattern.compile("^\\[email protected]\\w+(\\.\\w+){1,2}$"); 

    public static void main(String[] args) { 
     System.out.println(isValidEmailAddress("[email protected]")); 
     System.out.println(isValidEmailAddress("[email protected]")); 
     System.out.println(isValidEmailAddress("[email protected]")); 
    } 

    public static boolean isValidEmailAddress(String email) { 
     return EMAIL_REGEX.matcher(email).matches(); 
    }  
} 

输出如下:

true 
true 
false 
相关问题