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

Case Insensitive Matching in JSR-303 Bean Validation and Primefaces CSV

我正在使用 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.*$" 只能在 Primefaces 中使用 validateClient='false'。启用客户端验证会导致向用户显示一条错误消息:'undefined'。 firebug 控制台中未显示 javascript 错误。

有一个蛮力解决方案。虽然真的很丑:

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