求个验证日期格式的JS代码
要求如下
yyyy-mm-dd √
yyyy-m-d √
yyyy-m-dd √
yyyy-mm-d √
OVER
无其它要求,明白?
有段代码供参考和修改,猪个位程序猿大叔截日快了!
<script language="javascript">
function check(){
var a = /^(\d{4})-(\d{2})-(\d{2})$/
if (!a.test(document.getElementById("TextBox1").value)) {
alert("日期格式不正确!")
return false
}
else
return true
}
</script>
javascript 日期
[解决办法]
^(\d{4})-(\d{1,2})-(\d{1,2})$
[解决办法]
var isValidDate = function (value, userFormat) {
var
userFormat = userFormat
[解决办法]
'mm/dd/yyyy', // default format
delimiter = /[^mdy]/.exec(userFormat)[0],
theFormat = userFormat.split(delimiter),
theDate = value.split(delimiter),
isDate = function (date, format) {
var m, d, y
for (var i = 0, len = format.length; i < len; i++) {
if (/m/.test(format[i])) m = date[i]
if (/d/.test(format[i])) d = date[i]
if (/y/.test(format[i])) y = date[i]
}
return (
m > 0 && m < 13 &&
y && y.length === 4 &&
d > 0 && d <= (new Date(y, m, 0)).getDate()
)
}
return isDate(theDate, theFormat)
}
[解决办法]
^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]
[解决办法]
1[0-2])-(?:0[1-9]
[解决办法]
1[0-9]
[解决办法]
2[0-8])
[解决办法]
(?:0[13-9]
[解决办法]
1[0-2])-(?:29
[解决办法]
30)
[解决办法]
(?:0[13578]
[解决办法]
1[02])-31)
[解决办法]
(?:[0-9]{2}(?:0[48]
[解决办法]
[2468][048]
[解决办法]
[13579][26])
[解决办法]
(?:0[48]
[解决办法]
[2468][048]
[解决办法]
[13579][26])00)-02-29)$
以上正则年份0001-9999,格式yyyy-MM-dd。考虑月份、对应的天数,及平年闰年
详细参考:日期正则表达式
[解决办法]
isValidDate('09/9/2009')
isValidDate('09/9/2009')
isValidDate('9/9/2009')