求一个检测xxxx-xx-xx日期格式的正则表达式

Xudoz 2004-07-23 10:38:33
2004-05-06

能把2009-45-78这样的也屏蔽掉,即还有实际日期意义。

/^\d{4}-\d{2}-\d{2}$/ 这样的就不要拿出来了
...全文
842 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dullwolf 2004-07-23
  • 打赏
  • 举报
回复
<script>
function isDate(str)
{
var d = new Date(str)
return !isNaN(d)
}
</script>
wanghr100 2004-07-23
  • 打赏
  • 举报
回复
<script>
function isDate(str)
{
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
result = str.match(reg);
if(result == null)return false;
var d = new Date(result[1],result[3]-1,result[4])
var newStr = d.getFullYear()+result[2]+(d.getMonth()+1)+result[2]+d.getDate();
return str == newStr
}
alert(isDate("2004-5-1"))
alert(isDate("2004-5-32"))
alert(isDate("2004-2-30"))
</script>
xiaoq8265 2004-07-23
  • 打赏
  • 举报
回复
en
LxcJie 2004-07-23
  • 打赏
  • 举报
回复
function checkIsValidDate(str)
{
//如果为空,则通过校验
if(str == "")
return true;

var pattern = /^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g;
if(!pattern.test(str))
return false;
var arrDate = str.split("-");
if(parseInt(arrDate[0],10) < 100)
arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
var date = new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
if(date.getYear() == arrDate[0]
&& date.getMonth() == (parseInt(arrDate[1],10) -1)+""
&& date.getDate() == arrDate[2])
return true;
else
return false;
}//~~~
Xudoz 2004-07-23
  • 打赏
  • 举报
回复
嗯,这个知道,我另外有用途 ^_^
gjd111686 2004-07-23
  • 打赏
  • 举报
回复
最好用日历控件输入就不需要判断了.

87,996

社区成员

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

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