zoukankan
html css js c++ java
[转载]比较完美的日期验证正则表达式(已修正)
我始终没有找到完美的日期验证正则表达式,这要问题就是对瑞年的判断。
我们知道,每 400 年会有 97 个闰年(参见高中《地理》课本),完整的瑞年判断是这样的:
瑞年的年份
1) 若是整百年,能被 400 整除
否则
2) 能被 4 整除
下面给出代码,主要是为 String 原型添加 isDate 方法:
下面的正则表达式可以看成是由三个正则表达式拼接而成,瑞年二月判断、非闰年二月判断、其它月份判断。
<
script language
=
"
javascript
"
type
=
"
text/javascript
"
>
//
分隔符
Separator
=
{
ANY:
"
.
"
,
DASH:
"
-
"
,
DOT:
"
\\.
"
,
SLASH:
"
/
"
}
;
String.prototype.isDate
=
function
(sep)
{
var
reStr
=
"
^(((([0-9]{2}(([2468][048])|([02468][48])|([13579][26])))|((([02468][048])|([13579][26]))(00)))(-)(2|02)(-)(([0]?[1-9])|([1-2][0-9])))|((([0-9]{2}([02468][1235679])|([13579][01345789]))|((([02468][1235679])|([13579][01345789]))(00)))(-)(2|02)(-)(([0]?[1-9])|([1][0-9])|([2][0-8])))|(([0-9]{4})(-)(((([0]?(1|3|5|7|8))|(10|12))(-)(([0]?[1-9])|([1-2][0-9])|30|31))|(((([0]?(4|6))|11))(-)(([0]?[1-9])|([1-2][0-9])|30)))))$
"
;
if
(
typeof
(sep)
==
"
string
"
)
reStr
=
reStr.replace(
/
\(
-
\)
/
g,
"
(
"
+
sep
+
"
)
"
);
var
re
=
new
RegExp(reStr,
"
g
"
);
return
re.test(
this
);
}
;
function
check()
{
var
bb
=
document.getElementById(
"
TextBox1
"
).value;
//
alert(bb.isDate());
//
alert(bb.isDate(Separator.ANY)) ;
//
alert(bb.isDate(Separator.DASH)) ;
//
alert(bb.isDate(Separator.DOT)) ;
alert(bb.isDate(Separator.SLASH));
}
</
script
>
本篇文章为转载,来自:
GisCell的blogs
http://blog.csdn.net/giscell/archive/2007/06/22/1662209.aspx
查看全文
相关阅读:
云计算和SOA何时走到了一起?
MVP
Mvp
Technology Radar of thoughtworks
JSF
我们要积极学习互联网的用户体验
Gwt
数字的字符串处理
C语言字符串函数大全(转自百度百科)
树状数组
原文地址:https://www.cnblogs.com/puke/p/850347.html
最新文章
秋季学习总结
对我影响较大的三位老师
tornado的gen.engine浅析
在tornado的异步http请求中托管一个阻塞的任务到线程池
说说Python程序的执行过程
tornado的gist
ubuntu 12.04下配置APUE环境
再谈python的属性拦截
python的参数传递机制
Python使用spark模块构造计算器
热门文章
apue编译错误汇总(Ubuntu 12.04)
用LL(1)递归下降语法器构造一个计算器
汽车Can总线
使用hessian时用 proguard进行混淆
Android Button 的单击事件的三种响应方法
android中识别QrCode
set list map的简单操作
EventDriven Architecture Overview
如何画个人方向盘?
不重新发明轮子
Copyright © 2011-2022 走看看