Saya ingin regexp untuk waktu yang cocok dalam format HH: MM. Inilah yang saya miliki, dan berfungsi:
^[0-2][0-3]:[0-5][0-9]$
Ini cocok dengan segalanya mulai dari 00:00 hingga 23:59.
Namun, saya ingin mengubahnya jadi 0:00 dan 1:00, dll juga cocok dengan 00:00 dan 01:30. Yaitu untuk membuat digit paling kiri opsional, agar sesuai dengan HH: MM serta H: MM.
Ada ide bagaimana cara mengubahnya? Saya membutuhkan ini untuk bekerja di javascript dan juga php.
Jawaban:
Ekspresi reguler orisinal Anda memiliki kekurangan:
04:00
contohnya tidak cocok .Ini mungkin bekerja lebih baik:
sumber
^([0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Ekspresi Reguler untuk Waktu
HH: Format MM 12 jam, opsional 0 terkemuka
HH: Format 12-jam MM, opsional 0 terkemuka, meridiem wajib (AM / PM)
HH: MM 24 jam dengan memimpin 0
HH: Format 24 jam MM, memimpin 0 opsional
HH: MM: Format 24 jam SS dengan memimpin 0
Referensi dan Demo
sumber
^([0-2][0-3]|[0-1][0-9]):[0-5][0-9]+$
?Tidak satu pun di atas bekerja untuk saya. Pada akhirnya saya menggunakan:
Logika:
Angka pertama (jam) adalah: angka antara 0 dan 19 ->
[0-1]?[0-9]
(memungkinkan angka satu digit)atau
angka antara 20 - 23 ->
2[0-3]
angka kedua (menit) selalu merupakan angka antara 00 dan 59 ->
[0-5][0-9]
(tidak memungkinkan satu digit)sumber
[01]
berfungsi dengan baik;)^(0?[1-9]|1[0-2]):[0-5][0-9]$
^([0-1][0-9]|2[0-3]):[0-5][0-9]$
untuk memaksa nol di depanAnda dapat menggunakan ini 24 jam, detik adalah opsional
sumber
Yang terbaik adalah untuk HH: MM tanpa mengambil risiko apa pun.
sumber
^([0-1]\d|2[0-3]):[0-5]\d$
?Hebatnya saya menemukan sebenarnya semua ini tidak cukup menutupinya, karena mereka tidak bekerja untuk format pendek tengah malam 0: 0 dan beberapa tidak berfungsi untuk 00:00, saya menggunakan dan menguji yang berikut:
sumber
Anda dapat menggunakan ungkapan reguler ini:
Jika Anda ingin mengecualikan 00:00, Anda dapat menggunakan ungkapan ini
Ekspresi kedua adalah opsi yang lebih baik karena waktu yang valid adalah 00:01 hingga 00:59 atau 0:01 hingga 23:59. Anda dapat menggunakan semua ini berdasarkan kebutuhan Anda. Tautan Regex101
sumber
Cocok:
Gunakan:
sumber
DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1); Console.WriteLine(date1.ToString("H:mm:ss", CultureInfo.InvariantCulture)); // Displays 6:09:01
. untuk informasi lebih lanjut lihat tautanKetika Anda bertanya paling kiri bit opsional, saya telah melakukan paling kiri dan paling kanan bit opsional juga, periksa
Cocok dengan
Tautan langsung tersedia di sini
sumber
Anda dapat menggunakan regex berikut:
sumber
Menyatakan
Metode ini mengembalikan "true" ketika String cocok dengan Ekspresi Reguler.
sumber
Sedikit modifikasi pada kontribusi Manish M Demblani di atas menangani pukul 4 pagi (saya menyingkirkan bagian detik karena saya tidak memerlukannya dalam aplikasi saya)
menangani: 4 pagi 4 pagi 4:00 4:00 4:00 sore 4.30 pagi dll.
sumber
AM|am|aM|Am|PM|pm|pM|Pm
=[AaPp][Mm]
Regex di bawah ini akan membantu memvalidasi format jj: mm
sumber
Punya saya:
^(1?[0-9]|2[0-3]):[0-5][0-9]$
Ini jauh lebih pendek
Sudah diuji dengan beberapa contoh
Pertandingan:
Dan tidak cocok dengan instance tidak valid seperti 25:76 dll ...
sumber
09:30
tidak cocokAnda dapat mencoba yang berikut ini
Itu dapat mendeteksi pola berikut:
sumber
periksa regex detector timestamp masterfull yang saya buat ini untuk mencari cap waktu yang ditentukan pengguna, contoh-contoh apa yang akan diambil oleh pickup, tetapi yang pasti TIDAK terbatas;
Ini juga akan mengambil lebih banyak lagi, asalkan kali termasuk digit
sumber
RegExr requires a modern browser. Please update your browser to the latest version and try again.
... Aku bahkan tidak bisa melihatnya ...: - /Coba yang berikut ini
Catatan: Saya mengasumsikan mesin regex javascript. Jika berbeda dari itu, beri tahu saya.
sumber
Anda dapat menggunakan regex berikut:
Hanya modifikasi yang saya buat adalah digit paling kiri adalah opsional. Sisa regex sama.
sumber