@Pattern(regexp = "^[a-zA-Z0-9_-]*$", message = "Only alpha-numeric characters are allowed")
private String recipientId;
我想只允许字母数字字符,但上面的验证不能像我期望的那样工作。它允许带有加号(+)的请求通过
答案 0 :(得分:1)
使用括号时,连字符是用于定义范围的特殊字符,因此如果要匹配" - "。
正则表达式应该是
[a-zA-Z0-9_\\-]*
注意:测试后,似乎您可以在使用括号时使用连字符而不使用连字符。
我更喜欢这种方式(\\w|-)*
\ w单词字符:[a-zA-Z_0-9]
问题可能不在正则表达式上,而是在使用验证注释的方式上。您可以直接在字段上或在getter上使用注释,但不能同时在两者上使用。您确定所有注释始终遵循相同的编码模式吗?
最后你是否使用注释@Valid
来实际验证你的输入?