Регулярка под формат даты

Появилась необходимость написать регулярку для нахождения в строке дат такого формата 2020-12-06 21:00:00.0000000 +00:00 Накидал вот такую примитивную регулярку /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{7} \+\d{2}:\d{2}/ но выглядит она не очень. Есть ли возможность как-то это дело сократить и написать более адекватно?


Ответы (1 шт):

Автор решения: Qwertiy
  1. Сократить можно заменой \d{2} на \d\d, хотя, это скорее вопрос стилистики.

    /\d{4}-\d\d-\d\d \d\d:\d\d:\d\d\.\d{7} \+\d\d:\d\d/
    
  2. Вообще регулярка совершенно адекватная и простая. Можно было бы удваивать группы, но особой пользы от этого не будет, скорее наоборот станет сложнее читать:

    /\d{4}(-\d\d){2} (\d\d:){2}\d\d\.\d{7} \+\d{2}:\d{2}/
    
  3. Обращаю внимание, что ты не проверяешь на начало и конец строки, что означает, что любое вхождение такое подстроки сматчится.

  4. Само собой, эта регулярка проверяет только на корректность формата, но не на корректность самой даты.

→ Ссылка