2

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

我只是在寻找一种方法来测试字符串是否是有效日期。我在从 C# (JSON.NET) 传递的 Javascript 中绑定数据。传回的有效日期时间的格式是“2083-01-01T00:00:00”。我发现的所有函数要么说这是无效的,因为它们没有将时间戳部分包括在内,要么它们不够严格,并且说这个字符串“Testing 21215”是一个有效的日期。

在不使用库的情况下,我可以使用什么解决方案来验证这种格式?

4

1 回答 1

2

如果您保证格式将始终采用该 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(string) 方法;如果解析正确,那么您可以将其转换回 ISO 字符串

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

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

于 2016-03-14T16:41:30.033 回答