[Java lista] Pattern.compile bug (jdk 1.5)

bognár attila attila at netalfa.hu
2008. Már. 4., K, 13:48:53 CET


ez biztos jó?

mert pl a # karakter tudtommal benne lehet az email címben, a @ előtt 
biztosan (legalábbis nekem kell kezelnem egy ilyet)
(ha valamelyik hexa escape ezt eredményezi, akkor bocs)


Tamás Magyar írta:
>> 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
> 		);
> 	}
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>   
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20080304/d7283cdb/attachment-0001.html 


További információk a(z) Javalist levelezőlistáról