匹配yyyy-mm-dd日期格式的正则表达式如何写?

WorldCreater 2004-11-30 08:33:42
匹配yyyy-mm-dd日期格式的正则表达式如何写?
...全文
673 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
WorldCreater 2004-12-09
  • 打赏
  • 举报
回复
可是,楼上的代码不能通过啊

比如 1800-11-11 或 1900-11-11 或2004-11-11
都不能通过校验。怎么回事?
<script lang="javascript">
function checkx() {
var pattern = /([0-3]{0,1}[1-9]{1}-[0-1]{0,1}[1-9]{1}-[1-9]{1}[0-9]{3})/;
// /(?:^(((1[8-9])|([2-9]\d))\d{2})-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))$)/;
var flag = pattern.test(document.form.dateEdt.value);
if (flag) {
return true;
}
else {
alert('日期格式不合法,请按1800-01-01格式填写');
return false;
}

}

</script>
rootcn 2004-11-30
  • 打赏
  • 举报
回复
不过代码不够简练, 用楼上的.
rootcn 2004-11-30
  • 打赏
  • 举报
回复
re = new RegExp("([0-3]{0,1}[1-9]{1}/[0-1]{0,1}[1-9]{1}/[1-9]{1}[0-9]{3})");

是 yyyy/mm/dd

re = new RegExp("([0-3]{0,1}[1-9]{1}-[0-1]{0,1}[1-9]{1}-[1-9]{1}[0-9]{3})");

是 yyyy-mm-dd
WorldCreater 2004-11-30
  • 打赏
  • 举报
回复
应该是这样
var pattern = /\d{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))$/;
WorldCreater 2004-11-30
  • 打赏
  • 举报
回复
我的结果
var pattern = /\d{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))/;
WorldCreater 2004-11-30
  • 打赏
  • 举报
回复
<html>
<head>
<script lang="javascript">
function checkx() {
var pattern = /([0-3]{0,1}[1-9]{1}/[0-1]{0,1}[1-9]{1}/[1-9]{1}[0-9]{3})/;
这么写不对啊。报错
var flag = pattern.test(document.form.dateEdt.value);
if (flag) {
return true;
}
else {
alert('日期格式不合法,请按yyyy-mm-dd格式填写');
return false;
}

}

</script>
</head>

<body>
<form name="form">
<input type="text" name="dateEdt">
<button onclick="checkx()">test</button>
</form>
</body>
</html>
shyslysky 2004-11-30
  • 打赏
  • 举报
回复
/^(0[1-9])|(1[0-2])$/
WorldCreater 2004-11-30
  • 打赏
  • 举报
回复
晕。有点复杂,
用来限定月是 01~12
怎么个写法?
meizz 2004-11-30
  • 打赏
  • 举报
回复
<script language=javascript>
function isDate(str)
{
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)return false; var d = new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
alert(isDate("2002-01-31"));
alert(isDate("2002-01-41"));
</script>
rootcn 2004-11-30
  • 打赏
  • 举报
回复
re = new RegExp("([0-3]{0,1}[1-9]{1}-[0-1]{0,1}[1-9]{1}-[1-9]{1}[0-9]{3})");
rootcn 2004-11-30
  • 打赏
  • 举报
回复
re = new RegExp("([0-3]{0,1}[1-9]{1}/[0-1]{0,1}[1-9]{1}/[1-9]{1}[0-9]{3})");

87,901

社区成员

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

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