Regex für Uhrzeit (12-Stunden mit AM/PM)

Verwende /^(?:0?[1-9]|1[0-2]):[0-5]\d ?[AaPp][Mm]$/, um zu prüfen, ob ein gesamter String eine gültige Uhrzeit im 12-Stunden-Format mit AM/PM ist. Jedes Beispiel unten wurde gegen das Muster getestet. Du kannst es mit den vorgeladenen Beispielen direkt im Regex-Tester öffnen.

Aktualisiert am

/^(?:0?[1-9]|1[0-2]):[0-5]\d ?[AaPp][Mm]$/
Im Regex-Tester öffnen
EingabeErgebnis
9:30 AM✓ Treffer
12:00pm✓ Treffer
07:15 PM✓ Treffer
13:00 PM✗ Kein Treffer
9:30✗ Kein Treffer
0:30 AM✗ Kein Treffer
9:30 A.M.✗ Kein Treffer

So funktioniert das Muster

TeilBedeutung
(?:0?[1-9]|1[0-2])Stunden 1–12, optional mit führender Null
:[0-5]\dDoppelpunkt und Minuten 00–59
?Optionales Leerzeichen
[AaPp][Mm]AM oder PM, in beliebiger Schreibweise

Codebeispiele

JavaScript

const re = /^(?:0?[1-9]|1[0-2]):[0-5]\d ?[AaPp][Mm]$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:0?[1-9]|1[0-2]):[0-5]\d ?[AaPp][Mm]', value))

PHP

preg_match('/^(?:0?[1-9]|1[0-2]):[0-5]\d ?[AaPp][Mm]$/', $value) === 1;

Hinweise und Einschränkungen

Auf einer 12-Stunden-Uhr gibt es weder 0:00 noch 13:00, daher werden beide abgelehnt.

Häufige Fragen

Wie lautet der Regex für Uhrzeit (12-Stunden mit AM/PM)?
/^(?:0?[1-9]|1[0-2]):[0-5]\d ?[AaPp][Mm]$/ — er prüft den gesamten String. Was jeder Teil bewirkt, siehst du in der Tabelle oben.
Welche Beispiele passen?
Von den getesteten Beispielen treffen diese zu: 9:30 AM, 12:00pm, 07:15 PM. Die anderen nicht.
Wie teste ich diesen Regex?
Klicke auf „Im Regex-Tester öffnen“. Muster, Flags und Beispieltext werden automatisch geladen, und Treffer werden beim Bearbeiten markiert.