我需要使用this script以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");
答案 0 :(得分:9)
你的正则表达式错误。
你可以改用这个:
^\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])$/);
答案 1 :(得分:0)
这将在正确的位置使用破折号验证确切的格式。
/^(\d{4})-(\d\d)-(\d\d)$/
富勒验证确保合理的年/月/日值
/^(19|20)\d\d-(0\d|1[012])-(0\d|1\d|2\d|3[01])$/