Regex untuk Waktu 12 Jam (AM/PM)

Gunakan /^(?:0?[1-9]|1[0-2]):[0-5]\d ?[AaPp][Mm]$/ untuk memeriksa apakah seluruh string adalah format waktu 12 jam dengan AM/PM yang valid. Setiap contoh di bawah sudah diuji terhadap pola ini, dan kamu bisa membukanya di Regex Tester dengan contoh yang sudah dimuat.

Diperbarui

/^(?:0?[1-9]|1[0-2]):[0-5]\d ?[AaPp][Mm]$/
Buka di Regex Tester
InputHasil
9:30 AM✓ Cocok
12:00pm✓ Cocok
07:15 PM✓ Cocok
13:00 PM✗ Tidak cocok
9:30✗ Tidak cocok
0:30 AM✗ Tidak cocok
9:30 A.M.✗ Tidak cocok

Cara kerja pola

BagianArti
(?:0?[1-9]|1[0-2])Jam 1–12, dengan angka nol di depan yang opsional
:[0-5]\dTitik dua dan menit 00–59
?Spasi opsional
[AaPp][Mm]AM atau PM dengan huruf besar atau kecil

Contoh kode

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;

Catatan dan batasan

Pada format 12 jam tidak ada 0:00 atau 13:00, sehingga keduanya ditolak.

Pertanyaan yang sering diajukan

Apa regex untuk waktu 12 jam (AM/PM)?
/^(?:0?[1-9]|1[0-2]):[0-5]\d ?[AaPp][Mm]$/ — pola ini mencocokkan seluruh string. Lihat tabel di atas untuk fungsi tiap bagiannya.
Contoh mana yang cocok?
Dari contoh yang diuji, yang cocok adalah: 9:30 AM, 12:00pm, 07:15 PM. Yang lain tidak cocok.
Bagaimana cara menguji regex ini?
Klik “Buka di Regex Tester” — pola, flag, dan teks contoh akan dimuat otomatis, dan kecocokan akan disorot saat kamu mengedit.