HTML5 입력 형식의 정규 표현식 = 시간

질문:

입력 형식의'time'를 잘 처리할 수 있는 정규 표현식을 찾으려고 합니다.새 HTML5 입력 형식 = 시간을 사용하고 싶습니다. 이 폼은 주로 모바일 장치에 접근하기 때문에 사용자에게 시간 선택기를 제공하면 더욱 좋습니다.
그러나, 일부 브라우저들은 이런 입력 형식에 대해 특별한 처리를 하지 않기 때문에, 나는 여전히 정규 표현식이 필요하다.
나는 이 두 가지 예를 시험해 본 적이 있다.
Validating time-only input in asp.net MVC unobtrusive validation
24 hour time regex for HTML 5
입력 형식이 =text일 때 작동하지만, 타임으로 변경할 때 실패합니다.
고마워요
편집자
정규 표현식은 AM/PM을 사용하여 시간을 검증해야 하지만 선도 0(03:00 AM)이나 무분(3am)을 입력하는 것은 중요하지 않다.
기본적으로 시간 입력만 사용하면 됩니다.
<input data-val="true" data-val-regex="Invalid Time." data-val-regex-pattern="^(0[1-9]|1[0-2]):[0-5][0-9] (am|pm|AM|PM)$" name="StartTime" type="time" value="" />
크롬 시간 선택기를 사용할 때 잘못된 시간을 되돌려줍니다.

답안

좋은 소식과 나쁜 소식이 있어요...
아깝게도 input types different from text, search, url, tel, email, and password에서 pattern 속성을 사용할 수 없습니다.
비록 이것은 효과적이지만:
 <input type="text" pattern="([01]?[0-9]{1}|2[0-3]{1}):[0-5]{1}[0-9]{1}"/>
이것은 다음과 같습니다.
<input type="time" pattern="([01]?[0-9]{1}|2[0-3]{1}):[0-5]{1}[0-9]{1}"/>
좋은 소식은 type=time 에서 어떤 모드도 사용할 필요가 없을 수도 있습니다. 왜냐하면 has a pattern of its own

type=time (HH:MM)
- time value with no time zone in 24-hour military format.


편집자
편집 코드는 다음과 같습니다.
<input data-val="true"
 data-val-regex="Invalid Time."
 data-val-regex-pattern="^(0[1-9]|1[0-2]):[0-5][0-9] (am|pm|AM|PM)$"
 name="StartTime" type="time" value="" />
나는 또 사람들이 사용하고 있다는 것을 알아차렸다those data attributes. 그들은 여전히 사용하고 있다type="text".
이것이 바로 크롬 시간 선택기를 사용할 때 무효 시간을 되돌려주는 이유라고 생각합니다.
나는 type="time"가 다른 모델(심지어 data-과 함께 사용하는 상황을 발견하지 못했다. 이 답안은 이 점을 설명한 것 같다.
html5 time inputs shows 12 hours
만약 AM과 PM이 정말 필요하다면, type="text" 을 레지스트 모드와 함께 사용하고, 자바스크립트를 통해 날짜 선택기를 터치할 수 있습니다.