Javascript函数检查字符串是否是有效日期

时间:2016-03-14 16:30:17

标签: javascript c# validation datetime-format isodate

我知道这已被问过好几次了,但是我问,因为在网上搜了几个小时之后,我还没有找到一个可行的解决方案,不包括使用Javascript库。

我只是在寻找一种测试字符串是否为有效日期的方法。我在从C#(JSON.NET)传递的Javascript中绑定数据。正在传回的有效日期时间的格式为' 2083-01-01T00:00:00'。我发现的所有功能都说这是无效的,因为它们不包括允许的时间戳部分,或者它们不够严格,并且说这个字符串,测试21215',是有效的日期。

我可以使用什么解决方案验证此格式,而不使用库?

1 个答案:

答案 0 :(得分:1)

如果您要保证格式始终采用该ISO标准格式,则可以使用正则表达式将结构作为字符串进行测试。如果你愿意,你可以疯狂地详细说明,或尝试以下方法。

var dateRegexp = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/
var matches = dateString.match(dateRegexp)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match

也可能存在其他截然不同的方法。我首选的方法是尝试使用新的Date(字符串)方法;如果这个解析正确,那么你可以将它转换回ISO字符串

var dateString = "2016-03-18T00:00:00";
var date = new Date(dateString);
console.log(date.toISOString());

但是,您可能需要了解这对国际用户的影响。