在javascript中,我们经常要对日期格式加以判断,用正则表达式是最为快捷有效的,下面是验证日期格式(YYYY-MM-DD)和日期时间格式(YYYY-MM-DD hh:mm:ss)的正则表达式.
下面验证某个字符串是否日期(时间)格式:
var
_reDataTime
=
/^
([
1
-
9
]d
{3}
-
((
0
?
[
1
-
9
])
|
(
1
[
0
-
2
]))
-
((
0
[
1
-
9
])
|
([
1
-
2
]
?
d)
|
(
3
[
0
-
1
])))
?
$
/
//
日期格式,可为空
var _reTimeReg = /^ [ 1 - 9 ][ 0 - 9 ] {3} - ( 0 ? [ 1 - 9 ] | 1 [ 0 | 1 | 2 ]) - ( 0 ? [ 1 - 9 ] | [ 1 | 2 ][ 0 - 9 ] | 3 [ 0 | 1 ])s( 0 ? [ 1 - 9 ] | 1 [ 0 - 9 ] | 2 [ 0 - 3 ]):( 0 ? [ 0 - 9 ] | [ 1 | 2 | 3 | 4 | 5 ][ 0 - 9 ]):( 0 ? [ 0 - 9 ] | [ 1 | 2 | 3 | 4 | 5 ][ 0 - 9 ])$ / ; // 日期时间格式
var _reTimeReg = /^ [ 1 - 9 ][ 0 - 9 ] {3} - ( 0 ? [ 1 - 9 ] | 1 [ 0 | 1 | 2 ]) - ( 0 ? [ 1 - 9 ] | [ 1 | 2 ][ 0 - 9 ] | 3 [ 0 | 1 ])s( 0 ? [ 1 - 9 ] | 1 [ 0 - 9 ] | 2 [ 0 - 3 ]):( 0 ? [ 0 - 9 ] | [ 1 | 2 | 3 | 4 | 5 ][ 0 - 9 ]):( 0 ? [ 0 - 9 ] | [ 1 | 2 | 3 | 4 | 5 ][ 0 - 9 ])$ / ; // 日期时间格式
下面验证某个字符串是否日期(时间)格式:
var
sdate
=
"
2002/01/23
"
;
if (sdate != "" && _reDataTime.test(sdate)) // 日期格式
alert( " date " );
else if (_reTimeReg.test(datetime.inputValue)) // 日期时间格式
alert( " datetime " );
else
alert( " not date " );
if (sdate != "" && _reDataTime.test(sdate)) // 日期格式
alert( " date " );
else if (_reTimeReg.test(datetime.inputValue)) // 日期时间格式
alert( " datetime " );
else
alert( " not date " );