3

我需要使用 YYYY-MM-DD 格式的脚本来验证日期,但我似乎无法让它完美运行。使用我使用的正则表达式,它允许用户在正确的位置输入 10 个不带破折号的数字,而不是 8 个带破折号的数字。有没有办法修改我的脚本来解决这个问题?

jQuery.validator.addMethod("date", function(date, element) {
                return this.optional(element) || date.match(/^[-0-9]{10}$/);
            }, "Please specify a valid date");
4

2 回答 2

10

你有一个错误的正则表达式。

您可以改用这个:

^\d{4}-((0\d)|(1[012]))-(([012]\d)|3[01])$

所以它会是:

return this.optional(element) || date.match(/^\d{4}-((0\d)|(1[012]))-(([012]\d)|3[01])$/);
于 2013-05-14T13:44:25.433 回答
0

这将在正确的位置使用破折号验证确切的格式。

/^(\d{4})-(\d\d)-(\d\d)$/

可以进行更全面的验证以确保合理的年/月/日值

/^(19|20)\d\d-(0\d|1[012])-(0\d|1\d|2\d|3[01])$/
于 2013-05-14T13:44:05.043 回答