Regex Java正则表达式匹配和Hibernate验证器
我在表单上使用Hibernate验证程序,遇到了这个问题。验证程序如下所示:Regex Java正则表达式匹配和Hibernate验证器,regex,forms,spring,pattern-matching,hibernate-validator,Regex,Forms,Spring,Pattern Matching,Hibernate Validator,我在表单上使用Hibernate验证程序,遇到了这个问题。验证程序如下所示: @NotEmpty(message = "Firstname cannot be empty") @Pattern(regexp = "^[a-zA-Z0-9_]+$", message = "First Name can only contain characters.") private String firstname; 如果firstname为空,@NotEmpty和@Pattern都会被触发 问题 如何仅
@NotEmpty(message = "Firstname cannot be empty")
@Pattern(regexp = "^[a-zA-Z0-9_]+$", message = "First Name can only contain characters.")
private String firstname;
如果firstname为空,@NotEmpty和@Pattern都会被触发
问题
- 如何仅当firstname为空时才生成@NotEmpty触发器,并且仅当@Pattern触发器包含诸如“#”或“&”之类的非法字符时才生成@Pattern触发器
^[a-zA-Z0-9_]*$
而不是:
^[a-zA-Z0-9_]+$
*
应该使正则表达式也与空字符串匹配。因此,对于字符串为空的情况,应该触发@NotEmpty只是吹毛求疵,您可以将regexp减少到^\w+$
。立即!谢谢。