[Java lista] Pattern.compile bug (jdk 1.5)
Tamás Magyar
magyusz at gmail.com
2008. Már. 4., K, 13:31:58 CET
> Akkor meg sosem validaltal emailcimet a szabvany szerint.:)
Hat igen, ez sem kicsi pattern, ha osszeadogatod talan meg tobb is,
mint 600 karakter, megis gyorsan fut:
//$Id: EmailValidator.java 11282 2007-03-14 22:05:59Z epbernard $
//package org.hibernate.validator;
private static String ATOM =
"[^\\x00-\\x1F^\\(^\\)^\\<^\\>^\\@^\\,^\\(;^\\:^\\\\^\\\"^\\.^\\[^\\]^\\s]";
private static String DOMAIN = "(" + ATOM + "+(\\." + ATOM + "+)*";
private static String IP_DOMAIN =
"\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\]";
private java.util.regex.Pattern pattern;
public boolean isValidEmail(String email) {
if ( email == null ) return false;
if ( email.length() == 0 ) return false;
Matcher m = pattern.matcher( email );
return m.matches();
}
private void initializeEmailPatterns() {
pattern = java.util.regex.Pattern.compile(
"^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*$",
java.util.regex.Pattern.CASE_INSENSITIVE
);
pattern = java.util.regex.Pattern.compile(
"^" + ATOM + "+(\\." + ATOM + "+)*@"
+ DOMAIN
+ "|"
+ IP_DOMAIN
+ ")$",
java.util.regex.Pattern.CASE_INSENSITIVE
);
}
További információk a(z) Javalist levelezőlistáról