Вы сможете написать свое регулярное выражение, как показано ниже.
(19|20)\d{2}-\d{2}-\d{2}
См. Этот фрагмент кода JS:
var date = ' 2019-04-03 ';
var regex = /(19|20)\d{2}-\d{2}-\d{2}/g;
var result = date.match(regex);
console.log(result[0]);
В зависимости от того, какую строку вы используете для сопоставления с регулярным выражением, это может быть связано с тем, что использование ^ и $ вызывает проблемы.Использование ^ устанавливает позицию в начале строки.И использование $ устанавливает позицию в конце строки.Это, конечно, означает, что оно не будет совпадать, если ваша строка "1999-01-01" с пробелами или любым другим текстом в той же строке.
Имейте в виду, что если вы хотите, чтобы она работала в течение любого годаи не только с 1900 по 2099 год, вы должны использовать тот, что ниже.
\d{4}-\d{2}-\d{2}
Кроме того, обратите внимание, что это захватывает все, что выглядит как дата, например, 2099-99-99 все еще будет захвачено, нонедействительная датаЕсли вы хотите проверить дату, ваше регулярное выражение будет выглядеть значительно сложнее, см. Регулярное выражение для проверки формата даты дд / мм / гггг для примера с високосными годами и тому подобным.В зависимости от вашего варианта использования может быть проще позволить Javascript выполнить проверку.