在javascript中检查给定的日期格式

Posted

技术标签:

【中文标题】在javascript中检查给定的日期格式【英文标题】:Check given date format in javascript 【发布时间】:2020-05-18 13:25:41 【问题描述】:

您好,我在验证和确认给定日期的日期格式时遇到问题。

管理员为输入​​输入有效的日期格式,用户在输入中输入日期。

例如:用户输入2020-05-10,管理员输入Y-m-d我的验证函数必须返回true

两个输入都是动态的,我不知道如何确认格式

我看到了这个解决方案,但这不是动态的:Check date format in javascript

任何帮助将不胜感激

【问题讨论】:

请访问help center,使用tour查看内容和How to Ask。做一些研究,搜索关于 SO 的相关主题;如果您遇到困难,请发布您的尝试minimal reproducible example,并使用[<>] sn-p 编辑器记录输入和预期输出。 听起来你可以使用 moment.js 或 luxon 并为它们提供格式 2020-05-10 的格式不是Y-m-d。按照惯例,格式为YYYY-MM-DD(4 位数的年份,2 位数的月份,2 位数的日期)。看看 Moment 的format 和validation 我可以在没有时刻和任何其他库的情况下做到这一点 @MalkhaziDartsmelidze——是的,但您需要编写自己的解析器和标记器(例如this answer)。 【参考方案1】:

您可以使用正则表达式来实现它。

假设如果管理员输入日期格式Y-m-d,那么您可以验证用户输入,例如:

function validate() 
  var date = document.getElementById("date").value;
  if (date.match(/^[0-9]4\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])/)) 
    alert("Valid");
   else 
    alert("Invalid");
  
<input type="date" id="date" onchange="validate()" />

更改其他日期格式的正则表达式。

【讨论】:

是的,但是管理员用户不能输入正则表达式进行验证,他们只能输入格式 y, m, d 您可以在您的 javascript 代码中获取管理员输入的格式,然后您可以根据日期格式使用正则表达式输入 if-else/switch-case 条件来验证日期。 看看Moment.js。我认为使用这个库可以实现..

以上是关于在javascript中检查给定的日期格式的主要内容,如果未能解决你的问题,请参考以下文章

javascript 检查日期格式

将表单提交中指定的任何日期转换为给定格式

检查日期是不是有效

使用 javascript 从 cron 格式获取日期时间

检查给定日期是不是存在于从日期到今天之间

如何在java中获取给定的日期字符串格式(模式)?