如何验证此格式的日期 (ddmmyyyy)

How do I validate a date in this format (ddmmyyyy)

本文关键字:日期 ddmmyyyy 格式 验证 何验证      更新时间:2023-09-26

我有这个函数:

var isValidDate = function (date) {
   var regEx = /^'d{2}''d{2}''d{4}$/;
   return date.match(regEx) !== null;
};

我想用这个表格验证我的日期:

2015/1/23

我的

问题是我的正则表达式很好..?

正则表达式不安全。考虑99/99/9999,一个改进的正则表达式可以读取/^[0-3]'d'/[01]'d'/[12]'d{3}$/. However this still accept dates like 39/19/2999' 这显然是非法的。

虽然您可以进一步完善正则表达式以将单独的数字限制为有效范围,但如果您想排除 2 月 31 日,它会变得相当复杂。我建议使用实际代码而不是正则表达式来执行此操作。

您可以使用:

var regEx = /^'d{2}'''d{2}'''d{4}$/;

反斜杠也需要转义。

另请注意,原始字符串还需要具有如下所示的文字反斜杠''

var matched = regEx.test('15''11''2015')
//=> true

为了匹配dd/mm/yyyy正则表达式只是:

var regEx = /^'d{2}'/'d{2}'/'d{4}$/;

但是,这仍然不会使错误的日期无效,例如13/13/2015

您可以使用 html5 模式。 更好的模式^([0-2]'d|3[0-1])''(0'd|1[0-2])''[1-2]'d{3}$ .它也将在正则表达式中工作。

<input type="text" pattern="^'d{2}'''d{2}'''d{4}$" /><br/>
better
<input type="text" pattern="^([0-2]'d|3[0-1])''(0'd|1[0-2])''[1-2]'d{3}$" />