Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Java正则表达式匹配和Hibernate验证器_Regex_Forms_Spring_Pattern Matching_Hibernate Validator - Fatal编程技术网

Regex Java正则表达式匹配和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都会被触发 问题 如何仅

我在表单上使用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都会被触发

问题

  • 如何仅当firstname为空时才生成@NotEmpty触发器,并且仅当@Pattern触发器包含诸如“#”或“&”之类的非法字符时才生成@Pattern触发器
试试:

 ^[a-zA-Z0-9_]*$
而不是:

 ^[a-zA-Z0-9_]+$

*
应该使正则表达式也与空字符串匹配。因此,对于字符串为空的情况,应该触发@NotEmpty

只是吹毛求疵,您可以将regexp减少到
^\w+$
。立即!谢谢。