Email 验证
来源:互联网 发布:php tp框架分页 编辑:程序博客网 时间:2024/05/28 01:35
import java.util.ArrayList;import java.util.Collection;import java.util.StringTokenizer;import java.util.regex.Matcher;import java.util.regex.Pattern;import javax.validation.ConstraintValidator;import javax.validation.ConstraintValidatorContext;import com.aerohive.core.annotation.Email;public class EmailValidator implements ConstraintValidator<Email, String>{ private String separator; @Override public void initialize(Email constraintAnnotation) { switch (constraintAnnotation.separator()) { case SEMICOLON: default: this.separator = ";"; break; } } @Override public boolean isValid(String value, ConstraintValidatorContext context) { if(value == null) { return true; } Collection<String> invalidEmails = new ArrayList<> (); for (StringTokenizer token = new StringTokenizer(value.trim(), separator); token.hasMoreTokens();) { String email = token.nextToken(); if(!isValidEmailAddress(email)) { invalidEmails.add(email); } } if(!invalidEmails.isEmpty()) { context.buildConstraintViolationWithTemplate("Invalid emails: " + invalidEmails).addConstraintViolation(); return false; } return true; } private boolean isValidEmailAddress(String emailAddress) { Pattern p = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"); Matcher m = p.matcher(emailAddress); return m.matches(); }}
@Target({ ElementType.METHOD, ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy = {EmailValidator.class})@Documentedpublic @interface Email { String message() default "{invalid.email}"; Class<?>[] groups() default {}; Class<? extends Payload>[] payload() default {}; EmailSeparator separator() default EmailSeparator.SEMICOLON;}
0 0
- email验证
- Email验证
- email验证
- email验证
- email 验证
- 验证email
- 验证Email
- email验证
- Email 验证
- javascript验证email
- Email验证正则表达式
- EMAIL地址有效性验证
- javascript验证email
- 验证Email输入格式
- 最新email验证【转】
- js验证Email
- AJAX的EMAIL验证
- email 验证方式
- android studio调试
- 黑马Java EE面试总结
- urllib2模块
- 107.Binary Tree Level Order Traversal II
- POJ-1316
- Email 验证
- 关于微信分享、登录的一些注意事项
- hdu 5317
- 当现实爱情照进童话——《小王子》梗概及写作技术分析
- 黑马程序员------泛型
- 计算数字k在0到n中的出现的次数,k可能是0~9的一个值
- [深入理解Android卷一全文-第七章]深入理解Audio系统
- http://blog.csdn.net/uranus_wm/article/details/9838847
- ECLIPSE使用appcompat_v7库无法找到android:Widget.Material.ActionButton的问题