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
查看全文
相关阅读:
java.sql.SQLException: 数据大小超出此类型的最大值
日志收集系统 ELK
centos下mysql 数据库安装、调试
Log4j应用
使用webuploader实现大文件断点续传(前端部分)
es6学习 -- 解构赋值
es6学习 -- let和const
关于禁止页面滚动的实践(禁止滚轮事件)
匿名函数与闭包
JS高级学习总结--面向对象
原文地址:https://www.cnblogs.com/puke/p/850347.html
最新文章
jsp小后门
windows2008 IIS7 Appcmd.exe
MS14-068 privilege escalation PoC: 可以让任何域内用户提升为域管理员
sqlmap一些常用参数
mysql开启日志功能
一个人的武林:渗透测试常规思路分析(一)
JS探测内网是否存在bash漏洞,反弹shell
内网渗透基础:内网、域、工作组、域控概念介绍
IIS6 日志删除脚本(t00ls)
MS Office 2007 and 2010
热门文章
win95+ie3-win10+ie11 0day
树莓派打造无线扫描仪
CVE-2014-4114利用
年底了,总结一下大型网站的入侵经验[t00ls转载]
mongodb持久化
docker 的在线安装和配置
将博客搬至CSDN
oracle触发器学习
oracle随机抽样
sql查询字段中的换行符
Copyright © 2011-2022 走看看