我正在开发一个从查询字符串中获取值的应用。因为值来自查询字符串,所以我基本上使用字符串值。我需要编写一个JavaScript函数来确定字符串是否是ISO-8601格式的日期/时间。我的挑战之一是我的JavaScript代码使用严格模式(即'use strict';
)。目前,我正在尝试以下方法:
var isValidDateTime = function(dateString) {
var pattern = new RegExp('/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/');
if (pattern.text(dateString) === true) {
return true;
} else {
return false;
}
};
不幸的是,这似乎不起作用。我通过' 2014-07-28T10:53:59Z'作为测试目的的dateString
值。我猜我的正则表达式是不正确的。但是,我不确定使用哪一个。有谁知道如何验证字符串是否是有效的iso-8601日期/时间?
谢谢