在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中检查给定的日期格式的主要内容,如果未能解决你的问题,请参考以下文章