JSR-303 Bean验证和Primefaces CSV中的大小写不敏感匹配

时间:2016-09-09 07:22:29

标签: java regex primefaces bean-validation

我正在使用Bean Validation,我想允许不区分大小写的输入。 ' tas123'和' TAS123'应该是有效的输入。小写是工作但大写如TAS123'失败。

  @Pattern(regexp = "^$|^tas.*$", message = "Task ID must start with TAS", 
  flags = {Pattern.Flag.CASE_INSENSITIVE, Pattern.Flag.UNICODE_CASE})
  private String taskId;

我在Primefaces客户端验证中使用它。模式中是否存在错误,或者客户端的primefaces不支持CASE_INSENSITIVE标志?

更新 我曾尝试使用validateClient="false"禁用客户端验证,但验证仍然在服务器端失败。

UDATE-2: 使用regexp = "(?i)^$|^tas.*$"只能在validateClient='false'的Primefaces中使用。启用客户端验证会导致向用户显示错误消息:' undefined'。在firebug控制台中没有显示javascript错误。

1 个答案:

答案 0 :(得分:1)

有一种蛮力的解决方案。真的很难看:

@Pattern(regexp = "^$|^[Tt][Aa][Ss].*$", message = "Task ID must start with TAS",