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
查看全文
相关阅读:
电脑知识
编译器错误信息: CS0433: 类型“ASP.global_asax”同时存在于“c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727...的解决方法
windows平台下的oracle ORA-01031的解决方法
.NET下使用HTTP请求的正确姿势
EasyUI Datagrid 分页
Js 运算符(加减乘除)
Navicat 运行 Oracle 存储过程示例
oracle数据库忘记sys(或system)账户密码
SQL Server 死锁问题
C# 给某个方法设定执行超时时间
原文地址:https://www.cnblogs.com/puke/p/850347.html
最新文章
js实现图片点击弹出放大效果
js替换字符串中的空格,换行符 或 替换成<br>
Form表单之复选框checkbox操作
js如何判断数据类型
php封装
js面向对象轮播图写法
原生js的常见封装
原生js方面的兼容性问题
深入浅出:了解世上最全的数组去重方式
封装一个方法获取url上面的参数
热门文章
前端页面常见布局问题
vue和react总结
前端面试会遇到的奇葩难题
Jenkins asp.net
各浏览器下载文件名称长度差异
zabbix 5.0
mariadb
sql server 系统视图
js代码段
appcmd cmd 操作IIS
Copyright © 2011-2022 走看看