高难度正则表达式……, 高手请进! 高分招待!

taozabc 2002-03-27 10:15:58
我要用正则表达式验证一个text中的输入是否合法,此text是否是按格式MM/DD/YYYY存放的合法的日期字符串。同时如果输入的日期是还未到达(也即未来)提示。

谢谢! 分不够可以加!
...全文
41 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunbeamy 2002-03-27
  • 打赏
  • 举报
回复
function isDate(sDate){
var y,m,d
re=/^([01][\d])\/([0-3][\d])\/([12][\d]{3})$/

if (re.test(sDate)){
m=RegExp.$1
d=RegExp.$2
y=RegExp.$3
//在这里进一步判断年月日是否合法...

}
else{
return false
}

}
taozabc 2002-03-27
  • 打赏
  • 举报
回复
to : weidegong(weidegong)

这个方法不太合适吧, Date.parse()自动把日期月份折算,如13月他当作1月,
另外, 我如果限定必须是1900-2010年呢
slowpoke 2002-03-27
  • 打赏
  • 举报
回复
to weidegong(weidegong) :

你的腳本是錯誤的. 我試了一下,鏈 33/231/1991 都是合法的 !!!
weidegong 2002-03-27
  • 打赏
  • 举报
回复
<script>
function isDate(str)
{
var re = /,/g;
str = str.replace(re,"/");
re=/-/g;
str = str.replace(re,"/");
var dt=new Date(str);
var dnow=new Date();
return (!isNaN(dt) && ( dnow>dt) );
}
str = "3/2/2991 ";
alert(isDate(str));
</script>
weidegong 2002-03-27
  • 打赏
  • 举报
回复
<script>
function isDate(str)
{
var re = /,/g;
str = str.replace(re,"/");
re=/-/g;
str = str.replace(re,"/");
var dt=new Date(str);
return !isNaN(dt);
}
str = "3/2/1991 ";
alert(isDate(str));
</script>
qiushuiwuhen 2002-03-27
  • 打赏
  • 举报
回复
http://www.blueidea.com/bbs/newsdetail.asp?id=400549

<object classid=clsid:20DD1B9E-87C4-11D1-8BE3-0000F8754DA1 style="height:22"></object>

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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