限定日期格式的正则表达式怎么写?

musictom 2004-10-23 03:13:11
格式为四个数字加一个连字符加两位(或一位表示月份的数字)加一个连字符再加两位(或一位表示日期的数字),如:
2004-5-30
2004-05-30
2004-5-3
2004-05-3
这样,只能由数字、连字符组成,而且数字的位数是4、2(1)、2(1)
...全文
1096 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
PPLUNCLE 2004-10-23
  • 打赏
  • 举报
回复
var reg2=/^(\d{4})-(\d{1,2})-(\d{1,2})$/ //定义校验时间有效性的正则表达式。
var T_value = document.all["XQRQ"].value
//判断输入"需求日期"的有效性--必须符合YYYY-MM-DD格式
if(T_value.length!=0 && reg2.test(T_value)==false)
{
alert("数据提交失败:请检查您输入的每一个需求日期,需求日期只能输入YYYY-MM-DD形式!");
document.all["XQRQ"].select(); //使出错的文本框中的值处于被选中状态
return false;
}
if(T_value.length!=0)
{
var r=T_value.match(reg2)
var d=new Date(r[1],r[2]-1,r[3])
if(!(d.getFullYear()==r[1]&&d.getMonth()==r[2]-1&&d.getDate()==r[3])){
alert("数据提交失败:请检查您输入的每一个需求日期,需求日期只能输入YYYY-MM-DD形式!");
document.all["XQRQ"].select(); //使出错的文本框中的值处于被选中状态
return false;
}
}
cybernaute 2004-10-23
  • 打赏
  • 举报
回复
一般情况:
<script language="JavaScript">
<!--
function RegTest(str) /*----*/
{
var reg = /^(\d{4})-(\d{1,2})-(\d{1,2})$/;
var a = reg.test(str);
var b = str.match(reg);
if(a)
{
if(b[2]<0 || b[2]>12)
alert("Month error!");
else if(b[3]<0 || b[3]>32)
alert("Day error!");
alert("good");
}
else
{
alert("reg error!");
}
}
RegTest("2004-03-02");
//-->
</script>
zhuqm 2004-10-23
  • 打赏
  • 举报
回复
<script language="JavaScript">
String.prototype.IsDate=function()
{
var str=this;
var reg =/^(\d+)-(\d{1,2})-(\d{1,2})$/;
var r=str.match(reg);
if(r==null)return false;
r[2]=r[2]-1;
var d=new Date(r[1],r[2],r[3]);
if(d.getFullYear()!=r[1])return false;
if(d.getMonth()!=r[2])return false;
if(d.getDate()!=r[3])return false;
return true;
}
</script>
贴别人的代码,e.g
alert(yourdate.isDate())
cnidb 2004-10-23
  • 打赏
  • 举报
回复
晕倒.贴script总是提示:"请不要发表可能给我们带来伤害的言论,谢谢配合"
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2004-10-23 03:13
社区公告
暂无公告