2013-02-13 1 views
0

내 캘린더는 readOnlyInput = "false"이므로 사용자는 2013 년 13 월 13 일과 같은 잘못된 날짜를 입력 할 수 있습니다.p : calendar에서 정규식 날짜 유효성 검사

사용자가 datePicker 팝업을 사용하는 대신 날짜를 입력하려는 경우 내 날짜를 regexValidate 할 수있는 방법이 있습니까?

<p:calendar id="birthDate" size="22" locale="#{view.locale}" 
          maxdate="#{userCreationBean.maxDate}" navigator="true" 
          yearRange="c-100" readOnlyInput="false" 
          value="#{userCreationBean.user.birthDate}" 
          mindate="01/01/1900" pattern="dd/MM/yyyy" 
          style="left: 194px !important;" 

          > 
         </p:calendar> 

답변

1

<f:validateRegex> 검증은하지 Date 입력 값에 String 입력 값에서 작동하기 때문에 당신이 생각했던 목적을 위해 insuitable입니다.

변환기 대신 <f:convertDateTime> 변환기를 사용하십시오.

<p:calendar ...> 
    <f:convertDateTime pattern="dd/MM/yyyy" /> 
</p:calendar> 

기본값은 non-lenient이며 잘못된 날짜를 입력하면 변환기 예외가 발생합니다. 필요한 경우 입력 구성 요소의 converterMessage 속성을 사용하여 변환기 메시지를 사용자 정의 할 수 있습니다.

+1

안녕하세요 @BalusC하지만이 패턴을 사용하면 '12/12/2013123 '형식의 날짜가 유효합니다. 그러나 일년에 단지 4 개의 숫자 만 받아들이는 것도 있습니다. – 09Q71AO534