I have this expression:
to detect if my date:
2010-12-15
is valid. It’s not working. What do I have wrong?
I have this expression:
to detect if my date:
2010-12-15
is valid. It’s not working. What do I have wrong?
derfleurer, your expression still didn’t work for some reason. I’m using some old dreamweaver extension for form validation. I think I’ll rewrite that to use jquery’s validation. I might also just impliment mrhoo’s example as well. Choices, choices. Thank you all though.
odd. must be the script. Like I said, it’s old.
Tested on
1913 12 15
1937-01-22
2003-09-29
2007/08/01
etc. works fine.
Awesome tool for working with regular expressions:
You have some unescaped characters and a few missing parentheses. You also have your days/months mixed.
/(19|20)\d{2}([\-\/ .])(0[1-9]|1[012])\2([012][0-9]|3[01])/
April 31 and February 29, 2010 are not ‘real’ dates,
but it takes a monster of a regular expression to catch them.
It might be more sensible to try to make a date from the input,
and check what you get.
function isValidYmd(s){
s= s.split(/\\D+/);
var y= +s[0], m= parseInt(s[1], 10)-1,
d= parseInt(s[2], 10), day;
try{
day= new Date(y, m, d);
return day.getMonth()== m && day.getDate()== d;
}
catch(er){
return false;
}
}
alert(isValidYmd(‘2010-04-31’)); // false
alert(isValidYmd(‘2010-03-31’)); // true