[regex] HH : MM 시간 형식 일치를위한 정규식
HH : MM 형식의 시간 일치를위한 정규 표현식을 원합니다. 여기 내가 가진 것이 있으며 작동합니다.
^[0-2][0-3]:[0-5][0-9]$
이것은 00:00부터 23:59까지의 모든 항목과 일치합니다.
그러나 00:00과 01:30뿐만 아니라 0:00과 1:00 등도 일치하도록 변경하고 싶습니다. 즉, HH : MM 및 H : MM과 일치하도록 가장 왼쪽 숫자를 선택적으로 만듭니다.
어떻게 변화시킬 아이디어가 있습니까? PHP뿐만 아니라 자바 스크립트에서도 작동해야합니다.
답변
원래 정규 표현식에 결함이 있습니다. 04:00
예를 들어 일치하지 않습니다 .
이것은 더 잘 작동 할 수 있습니다 :
^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$
답변
시간에 대한 정규 표현식
-
HH : MM 12 시간 형식, 선행 0 (선택 사항)
/^(0?[1-9]|1[0-2]):[0-5][0-9]\d$/
-
HH : MM 12 시간 형식, 선택적 선행 0, 필수 메리디언 (AM / PM)
/((1[0-2]|0?[1-9]):([0-5][0-9]) ?([AaPp][Mm]))/
-
HH : MM 24 시간, 선행 0
/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/
-
HH : MM 24 시간 형식, 선행 0 (선택 사항)
/^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/
-
HH : MM : SS 24 시간 형식, 선행 0
/(?:[01]\d|2[0-3]):(?:[0-5]\d):(?:[0-5]\d)/
답변
위의 어느 것도 나를 위해 일하지 않았습니다. 결국 나는 사용했다 :
^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$ (js engine)
논리:
첫 번째 숫자 (시간)는 0과 19 사이의 숫자-> [0-1]?[0-9]
(한 자리 숫자 허용)
또는
20과 23 사이의 숫자입니다.2[0-3]
두 번째 숫자 (분)는 항상 00과 59 사이의 숫자입니다.-> [0-5][0-9]
(한 자리 숫자는 허용되지 않음)
답변
당신은이 하나를 24H를 사용할 수 있습니다, 초는 선택 사항입니다
^([0-1]?[0-9]|[2][0-3]):([0-5][0-9])(:[0-5][0-9])?$
답변
위험하지 않은 HH : MM이 가장 좋습니다.
^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
답변
놀랍게도 실제로 0 : 0의 짧은 형식 자정에는 작동하지 않으며 00:00에는 작동하지 않는 일부가 있기 때문에 실제로 모든 것을 다루지 않는다는 것을 알았습니다.
^([0-9]|0[0-9]|1?[0-9]|2[0-3]):[0-5]?[0-9]$
답변
이 정규식을 사용할 수 있습니다.
^(2[0-3]|[01]?[0-9]):([1-5]{1}[0-9])$
00:00을 제외하려면이 표현식을 사용할 수 있습니다
^(2[0-3]|[01]?[0-9]):(0[1-9]{1}|[1-5]{1}[0-9])$
유효한 시간이 00:01-00:59 또는 0:01-23:59이므로 두 번째 표현식이 더 좋습니다. 필요에 따라 이들 중 하나를 사용할 수 있습니다.
정규식 링크