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",
我正在使用 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",