我正在输入出生日期和死亡日期。所需验证
验证不像预期的那样工作,也无法解决问题。请帮帮忙。
JS库
发布于 2014-06-24 08:53:07
您不需要date
验证器。它的不支持dd/mm/yyyy格式,这就是为什么你要得到“请输入一个有效的日期”的信息输入,如13/01/2014。您已经有了dateITA
验证器,它根据需要使用dd/mm/yyyy格式。
就像date
验证器一样,dateGreaterThan
和dateLessThan
的代码调用new Date
作为输入字符串,并具有相同的问题解析日期。您可以使用这样的函数来解析日期:
function parseDMY(value) {
var date = value.split("/");
var d = parseInt(date[0], 10),
m = parseInt(date[1], 10),
y = parseInt(date[2], 10);
return new Date(y, m - 1, d);
}
发布于 2015-11-04 19:04:19
这也将检查闰年。这是纯正则表达式,所以它比任何库都快(也比moment.js快)。但是如果您要在代码中使用大量的日期,我建议您使用moment.js
var dateRegex = /^(?=\d)(?:(?:31(?!.(?:0?[2469]|11))|(?:30|29)(?!.0?2)|29(?=.0?2.(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(?:\x20|$))|(?:2[0-8]|1\d|0?[1-9]))([-.\/])(?:1[012]|0?[1-9])\1(?:1[6-9]|[2-9]\d)?\d\d(?:(?=\x20\d)\x20|$))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\x20[AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
console.log(dateRegex.test('21/01/1986'));
发布于 2015-11-26 11:38:50
如果你使用即时的js库,它可以很容易地做到这样-
jQuery.validator.addMethod("validDate", function(value, element) {
return this.optional(element) || moment(value,"DD/MM/YYYY").isValid();
}, "Please enter a valid date in the format DD/MM/YYYY");
https://stackoverflow.com/questions/24380305
复制相似问题