Yevhen Klymentiev
dark
light
console
darkness
y.klymentiev@gmail.com
Reusable Snippets|Practical utility code for everyday use — custom-built and ready to share

isValidTimeHHMM

Validates whether a string is in the "HH:mm" 24-hour time format.

TypeScript
Copied!
1/**
2 * Validates whether a string is in the "HH:mm" 24-hour time format.
3 *
4 * Valid range:
5 * - Hours: 00–23
6 * - Minutes: 00–59
7 *
8 * @param str - The string to validate.
9 * @returns True if valid, false otherwise.
10 */
11export function isValidTimeHHMM(str: string): boolean {
12  return /^([01]\d|2[0-3]):[0-5]\d$/.test(str);
13}
  • Precise Format Matching

    Ensures strict adherence to the 24-hour "HH:mm" format, catching subtle errors like 24:00 or 12:60.

  • Lightweight and Fast

    Uses a compact regular expression with minimal computational cost, making it ideal for high-frequency validations.

  • Avoids Date Object Overhead

    Validates the time format without relying on Date parsing, which can introduce cross-browser quirks or overhead.

  • Clear Readability

    The regular expression is concise and self-explanatory for developers familiar with time formatting.

Tests | Examples

TypeScript
Copied!
1test('valid HH:mm times', () => {
2  expect(isValidTimeHHMM('00:00')).toBe(true);
3  expect(isValidTimeHHMM('09:30')).toBe(true);
4  expect(isValidTimeHHMM('23:59')).toBe(true);
5  expect(isValidTimeHHMM('15:01')).toBe(true);
6});
7
8test('invalid HH:mm times - bad format', () => {
9  expect(isValidTimeHHMM('0:00')).toBe(false);
10  expect(isValidTimeHHMM('24:00')).toBe(false);
11  expect(isValidTimeHHMM('12:60')).toBe(false);
12  expect(isValidTimeHHMM('1234')).toBe(false);
13  expect(isValidTimeHHMM('12:5')).toBe(false);
14});
15
16test('invalid HH:mm times - non-numeric', () => {
17  expect(isValidTimeHHMM('aa:bb')).toBe(false);
18  expect(isValidTimeHHMM('12:mm')).toBe(false);
19  expect(isValidTimeHHMM('HH:MM')).toBe(false);
20});

Common Use Cases

  • Time Input Fields

    Validate user-entered time values in web forms, particularly for scheduling or event creation.

  • Backend API Validation

    Enforce correct time formatting in incoming data payloads, especially in systems without native time types.

  • CSV or Text Data Import

    Validate and sanitize time fields during bulk import operations from external data sources.

  • Configuration UIs

    Accept and verify time inputs in settings panels or automated job schedulers.

Codebase: Utilities -> Validation -> isValidTimeHHMM | Yevhen Klymentiev