Javascript regex / ^ (19 | 20) ([0-9] {2}) - ([0-9] {2} | 0 [0-9] {1}) - ([0-9] {2} | 0 [0-9] {1}) $ / г не нашел даты в качестве значения ввода - PullRequest
2 голосов
/ 05 апреля 2019

и спасибо.Я создал шаблон

/^(19|20)([0-9]{2})-([0-9]{2}|0[0-9]{1})-([0-9]{2}|0[0-9]{1})$/g

в js, но не работал в браузере.Я тестировал Здесь .Работает, но в браузере JS не

Ответы [ 3 ]

2 голосов
/ 05 апреля 2019

Следующее регулярное выражение должно выполнить ожидаемую проверку.

\((19|20)\d{2}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))\
1 голос
/ 05 апреля 2019

Вы сможете написать свое регулярное выражение, как показано ниже.

(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 выполнить проверку.

0 голосов
/ 05 апреля 2019

Это работает.Благодарю.

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]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...