Написать регулярное выражение для нахождения даты

Нужно написать регулярное выражение для нахождения даты формата гггг/мм/дд в js. Имеется готовое регулярное выражение для поиска даты формата гггг-мм-дд, но как только я пытаюсь заменить тире на слэши, перестаёт работать

let re = RegExp('(\\d+)-(\\d+)-(\\d+)')

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

Автор решения: the_Solomon
const re =  /\d{4}\/\d{1,2}\/\d{1,2}/g

или

const re =  /\d{4}\/\d{2}\/\d{2}/g

В первом варианте 2022/1/1 - будет валидной датой, а во втором нужно чтобы дата была такой: 2022/01/01

→ Ссылка
Автор решения: De.Minov

Потому что слеш должен быть экранирован.

let re = RegExp('(\\d+)\/(\\d+)\/(\\d+)');

// TEST
[
  '2022/09/22',
  '99999999/9999/0000',
  '2022/09/DD',
].forEach(function(str) {
  console.log(str+' - '+re.test(str));  
});

А вообще это немного не правильная регулярка, лучше уточнить кол-во символов.

let re = RegExp('(\\d{2,4})\/(\\d{1,2})\/(\\d{1,2})');

// TEST
[
  '2022/09/22',
  '22/9/22',
  '99999/09/DD',
].forEach(function(str) {
  console.log(str+' - '+re.test(str));  
});


А если прям ещё точнее хотите, то можно вообще так - https://stackoverflow.com/a/26972181/7692602

→ Ссылка