我有一个验证bean:
@Email(message = "Email is not valid", regexp="{(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])}")
@NotEmpty(message = "Email cannot be empty")
private String email;
当电子邮件是空的消息是好的,但当我输入此文本
perisava.util.Random@1d7f0036
没有显示错误
2条答案
按热度按时间eni9jsuy1#
这个问题可以通过查看源代码来解决@电子邮件注解具有属性regexp(),默认值为“.*”。如果它与您输入的字符匹配,您可以编写自己的正则表达式
e4yzc0pl2#
javax.validation.constraints.Email
注解取决于Jakarta Bean Validation providers
进行验证。hibernate验证器是唯一的complient验证器。默认情况下,hibernate validator将电子邮件与regex匹配.*
除非你自己提供正则表达式。hibernate电子邮件验证程序源代码在这里。一种解决方案是提供自己的电子邮件regex
你可以在这里找到正则表达式。
java的正则表达式是