Перестановка компонентов даты

Разделите строку по точкам, переставьте год, месяц и день и соедините обратно. Преобразование через Date не нужно и может добавить лишнюю зависимость от часового пояса.

Короткий ответ

Что ответить на собеседовании

Разделите строку по точкам, переставьте год, месяц и день и соедините обратно. Преобразование через Date не нужно и может добавить лишнюю зависимость от часового пояса.

Подробный разбор

Ответ с пояснениями

Условие

Создайте функцию swapDate(order) (или любую другую названную вами), которая получает строку даты, записанную как dd.mm.yyyy, и возвращает её в виде yyyy.mm.dd.

// input:  "15.01.2022"
// output: "2022.01.15"

Ответ

Разделите строку по точкам, переставьте год, месяц и день и соедините обратно. Преобразование через Date не нужно и может добавить лишнюю зависимость от часового пояса.

function swapDate(text) {
  const match = /^([0-9]{2})\.([0-9]{2})\.([0-9]{4})$/.exec(text);
  if (!match) throw new Error('Ожидается dd.mm.yyyy');
  const [, day, month, year] = match;
  return `${year}.${month}.${day}`;
}

Ведущие нули сохраняются, для 15.01.2022 получится 2022.01.15. Регулярное выражение проверяет только форму записи, а не существование календарной даты. Если нужна проверка вроде 31 февраля, её следует добавить отдельно.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее