验证dd-MM-yyyy日期格式的正则表达式

So_CooL 2012-08-24 04:03:06
<script language="javascript" type="text/javascript">

function checkDate() {
var reg = /^(\d{2})([-])(\d{2})([-])(\d{4})/;
if (!reg.test(window.event.srcElement.value) && window.event.srcElement.value != "") {
document.getElementById(window.event.srcElement.id).focus();
alert( "日期格式不正确!\n正确格式为:01-08-2012");
return false;
}

类似这样的,怎么样能验证日期呢.
...全文
1096 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
考证的二狗 2013-11-08
  • 打赏
  • 举报
回复
我们用的是asp.net的web开发,实验手册上的表达式是:(((0[1-9]|[12][0-9]|3[01])/((0[13578]|1[02]))|((0[1-9]|[12][0-9]|30)/(0[469]|11))|(0[1-9]|[1][0-9]|2[0-8])/(02))/([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3}))|(29/02/(([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))) 不知道对不对
-过客- 2012-09-04
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]

好象不行,如:10-20-2012 日-月-年的格式不行.
[/Quote]

20怎么可能是月?
天下如山 2012-09-03
  • 打赏
  • 举报
回复
最近在练习写正则 所以只要看到正则的帖子我就上来凑下热闹

天下如山 2012-09-03
  • 打赏
  • 举报
回复
额 第一个貌似有点小错误 日期可以为0 应该为

/^(?:[1-9]|[0][1-9]|[1-2]\d|3[0-1])-(?:[1-9]|0[1-9]|[1][0-2])-(?:\d{4})$/
还有貌似?:可以拿掉
So_CooL 2012-09-03
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 的回复:]
正则:

JScript code

1、
/^(?:[0-9]|[0][1-9]|[1-2]\d|3[0-1])-(?:[1-9]|0[1-9]|[1][0-2])-(?:\d{4})$/
判断了格式为dd-mm-yyyy、d-m-yyyy、dd-m-yyyy、d-mm-yyyy符合要求,这里面判断了日期为1-31 月份为1-12 年只判断了4位数字
2、如果楼主严格要求的格式为d……
[/Quote]
楼上的还马马乎乎,多谢.
天下如山 2012-09-03
  • 打赏
  • 举报
回复
正则:

1、
/^(?:[0-9]|[0][1-9]|[1-2]\d|3[0-1])-(?:[1-9]|0[1-9]|[1][0-2])-(?:\d{4})$/
判断了格式为dd-mm-yyyy、d-m-yyyy、dd-m-yyyy、d-mm-yyyy符合要求,这里面判断了日期为1-31 月份为1-12 年只判断了4位数字
2、如果楼主严格要求的格式为dd-mm-yyyy 则为
/^(?:[0][1-9]|[1-2]\d|3[0-1])-(?:0[1-9]|[1][0-2])-(?:\d{4})$/ 判断了日期为1-31 月份为1-12 年只判断了4位数字

JS代码使用 C#里面请去掉"/"
So_CooL 2012-09-03
  • 打赏
  • 举报
回复
dd-mm-yyyy 如:10-20-2012这样的就验证不了.
So_CooL 2012-09-03
  • 打赏
  • 举报
回复
好象不行,如:10-20-2012 日-月-年的格式不行.
-过客- 2012-08-28
  • 打赏
  • 举报
回复

4.2 其它形式扩展里已经经了,把不需要的其它连字符去掉就是了

^(?:(?:(?:0[1-9]|1[0-9]|2[0-8])-(?:0[1-9]|1[0-2])|(?:29|30)-(?:0[13-9]|1[0-2])|31-(?:0[13578]|1[02]))-(?!0000)[0-9]{4}|29-02-(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00))$
-过客- 2012-08-27
  • 打赏
  • 举报
回复
-过客- 2012-08-27
  • 打赏
  • 举报
回复
参考我的博客
[url=http://blog.csdn.net/lxcnn/article/details/4362500]正则应用之——日期正则表达式[\url]
「已注销」 2012-08-27
  • 打赏
  • 举报
回复
My97DatePicker 推荐日期插件

/////////////////////////////////////

var reg = /^\d{2}[-]\d{2}[-]\d{4}$/gi;

这个就是正则
So_CooL 2012-08-27
  • 打赏
  • 举报
回复
有没有dd-mm-yyyy这种的日期正则表达式呢
So_CooL 2012-08-27
  • 打赏
  • 举报
回复
还有没有其他方法呢
So_CooL 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
参考我的博客
正则应用之——日期正则表达式
[/Quote]

如果是dd-mm-yyyy这种的日期正则表达式,你的那里要怎么样改呢.
wwweeeeynet 2012-08-25
  • 打赏
  • 举报
回复
\d{1,2}-\d{1,2}-\d{4}
杰拉尔 2012-08-24
  • 打赏
  • 举报
回复
if(Regex.IsMatch(start.Text,@ "^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$ "))


yyyy-MM-dd
代码誊写工 2012-08-24
  • 打赏
  • 举报
回复
这种最好不用正则,太慢了,两种方法会比较快:
1.date.parse/date.tryparse检查是否合法,缺点是不知道哪部分不合法
2.用你原来的正则验证,然后取出日、月等部分,用byte.Tryparse转换,再看看是否合法,这样还可以检查闰年、闰月、大小月。
liufei19880218 2012-08-24
  • 打赏
  • 举报
回复
var reg = /^\d{2}[-]\d{2}[-]\d{4}$/gi;
liufei19880218 2012-08-24
  • 打赏
  • 举报
回复
var reg = /^\d{2}[-]\d{2}[-]\d{4}$/gi;
加载更多回复(3)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧