Вам нужно либо использовать объект регулярного выражения: /^\d{4}-\d{2}-\d{2}$/
, либо экранировать обратную косую черту: "^\\d{4}-\\d{2}-\\d{2}$"
.
Кроме того, это регулярное выражение не будет выполнено, если в строке есть что-то еще, кроме даты (например,пробел).
Таким образом,
var pattern = /^\s*\d{4}-\d{2}-\d{2}\s*$/;
может быть лучшей ставкой.
Это регулярное выражение (конечно) не будет проверять действительные даты, только для строк, которые состоят изчетыре цифры, дефис, две цифры, еще один дефис и еще две цифры.Возможно, вы захотите
- сделать необязательные начальные нули (т. Е. Использовать
\d{1,2}
вместо \d{2}
) - выполнить проверку фактической даты вне регулярного выражения.
Вы можете (вроде) проверять даты с помощью регулярных выражений, но они не очень красивые.Еще хуже, если вы хотите учитывать високосные годы или ограничить диапазон дат.