2016-09-09 2 views
1

Я использую проверку бина, и я хочу разрешить вход без учета регистра. 'tas123' и 'TAS123' должны быть действительными вводами. Нижний регистр работает, но прописные буквы, такие как «TAS123», не работают.Нечувствительное к регистру совпадение в JSR-303 Проверка валов и правильность CSV

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

Я использую это при проверке на стороне клиента. Есть ли что-то не так в шаблоне или не имеет ли интерфейсы флаг CASE_INSENSITIVE на стороне клиента?

UPDATE: Я попытался отключить проверку клиента с validateClient="false", но проверка по-прежнему не на стороне сервера.

UDATE-2: Использование regexp = "(?i)^$|^tas.*$" работ в Primefaces только с validateClient='false'. Включение проверки клиента приводит к появлению сообщения об ошибке: «undefined». Ошибки javascript не отображаются в консоли firebug.

+0

И если вы используете метод liketotoLowerCase()? Как после вашего ввода все будет в нижнем регистре. –

+1

@LandelinDelcoucq это помещает шум в код, для этого сделаны валидации. – joc

+0

вы можете попробовать: - '' (? I)^$ |^tas. * $ "' – rock321987

ответ

1

Существует решение грубой силы. Действительно уродливый:

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

Это, по-видимому, единственный способ в Primefaces CSV. – tak3shi

 Смежные вопросы

  • Нет связанных вопросов^_^