Написать регулярное выражение для нахождения даты
Нужно написать регулярное выражение для нахождения даты формата гггг/мм/дд в 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