Sup*_*eet 22 javascript regex jquery
我正在尝试验证日期时间格式MM/DD/YYYY.这是我正在尝试的代码请帮助.
function ValidateDate(testdate) {
var Status
var reg = /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g;
if (!reg.test(testdate)) {
Status = false;
}
return Status;
}
Run Code Online (Sandbox Code Playgroud)
noi*_*rre 53
尝试使用像http://jsregex.com/(有很多)或更好的工具,单元测试你的正则表达式.
对于天真的验证:
function validateDate(testdate) {
var date_regex = /^\d{2}\/\d{2}\/\d{4}$/ ;
return date_regex.test(testdate);
}
Run Code Online (Sandbox Code Playgroud)
在你的情况下,为了验证(MM/DD/YYYY),在1900年到2099年之间,我会这样写:
function validateDate(testdate) {
var date_regex = /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$/ ;
return date_regex.test(testdate);
}
Run Code Online (Sandbox Code Playgroud)
标记的答案是完美的,但对于一种情况,dd和mm实际上是单个数字.在这种情况下,以下正则表达式是完美的:
function validateDate(testdate) {
var date_regex = /^(0?[1-9]|1[0-2])\/(0?[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$/ ;
return date_regex.test(testdate);
}Run Code Online (Sandbox Code Playgroud)