Java Bean验证API
使用Bean验证API验证对象,以便通过Hibernate保存在DB中。 英文字母都可以:Java Bean验证API,java,regex,spring,hibernate,Java,Regex,Spring,Hibernate,使用Bean验证API验证对象,以便通过Hibernate保存在DB中。 英文字母都可以: @Pattern(regexp="^[a-zA-Z]+$",message="Имя автора только из букв") private String name; 当我写这篇文章时: @Pattern(regexp="^[a-zа-яA-ZА-Я]+$", message="Имя автора только из букв") private String name; 它不起作用,错误输
@Pattern(regexp="^[a-zA-Z]+$",message="Имя автора только из букв")
private String name;
当我写这篇文章时:
@Pattern(regexp="^[a-zа-яA-ZА-Я]+$", message="Имя автора только из букв")
private String name;
它不起作用,错误输入数据时出错
但是如何在regexp中添加俄语字母呢
是的,春天的问题。删除regexp并输入俄文文本时,在数据库中写入类似以下内容的内容
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
编码滤波器
org.springframework.web.filter.CharacterEncodingFilter
编码
UTF-8
强制编码
真的
编码滤波器
/*
类似于regexp的
[a-zA-Zа-a-zA-Я]
工作正常。将模式更改为regexp=“^[\p{iscyrical}a-zA-Z]+$”
。看看这样行不行@Octopus,我猜您的意思是regexp=“^[\p{iscyrical}a-zA-Z]+$”
不工作,错误在\p中,因为它是字符串。如果写得像\\p,不工作是的,对不起;)OP,请看stema的评论。也许可以尝试incyrical
而不是incyrical
。另外,你能举一个你无法验证的数据的例子吗?别忘了接受你的答案。另外,使用(?i)
标志将使正则表达式不区分大小写,因此可以尝试(?i)[a-zа-а]
。我认为[a-zA-zа-а-a-Я]
更容易理解。