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
查看全文
相关阅读:
python query-string处理Query String Parameters参数
谷歌chrome浏览器大量书签消失,怎么恢复历史?
VUE懒加载的table前端搜索
SQL排序分组
使用sqlparse解析table_name,超级强大,支持子查询, left join等
20211008杂记
[BZOJ2216|Luogu P3515] [Poi2011]Lightning Conductor (线性解法)
矩阵的特征值和特征向量
dp多维状态的优化
02-servlet基本介绍访问流程生命周期Service、doGet、doPost
原文地址:https://www.cnblogs.com/puke/p/850347.html
最新文章
ELKF:ES 安装可能遇到的问题
MySQL++:MySQL 锁表原因 及 核心问题(性能优化)
MySQL++:慢查询日志分析(一)
Redis++:Redis 大 key的发现与删除方法全解析
16岁男生信息竞赛成瘾心理出现问题 妈妈:他竟说要AK我
CF1580E Railway Construction
家长直呼太暴力!这些算法可能会被删除
[gym102978C] Count Min Ratio
长链剖分小结
[八省联考2018]制胡窜 (SAM+大讨论)
热门文章
2021 ICPC Gran Premio de Mexico 1ra Fecha
2019-2020 ACM-ICPC Brazil Subregional Programming Contest
window.postMessage安全地实现跨源通信
Vue中hash模式和history模式的区别
包装类
get请求使用body传参
线程与进程、浏览器内核模块组成
Git常用总结
MYSQL添加外键
mysql
Copyright © 2011-2022 走看看