我有一些像这样的字符串:2012-02-05T07:42:47.000Z
与其他字符串混合。这种格式始终。 (但数字不一样,当然......时间不同)
(不是Sun, 05 Feb 2012 07:42:47 GMT
)
我想知道字符串是否与该格式匹配。我该如何确定?冒号,点和东西都很复杂。
答案 0 :(得分:2)
正则表达式[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{3}Z
答案 1 :(得分:0)
!isNaN(+new Date(s))
的那些?
答案 2 :(得分:0)
尝试与以下正则表达式匹配:
var pattern = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;
var d = "2012-02-05T07:42:47.000Z";
if(d.match(pattern) !== null){
//success
} else {
//failed
}
答案 3 :(得分:0)
您可以使用Date.parse(your_string)并检查结果。与正则表达式不同,这将检查任何允许的日期格式。
http://www.w3schools.com/jsref/jsref_parse.asp
刚刚意识到你的字符串总是处于一种给定的格式,仍然不像正则表达式,该功能将检查日/月/年是否正确等。所以可能进行2次检查:第一次检查字符串格式,第二次检查数字是否正确。
答案 4 :(得分:0)
用#符号替换所有数字,以便" 2012-02-05T07:42:47.000Z"看起来像" #### - ## - ## T ##:##:##。### Z"然后你可以进行直接的字符串搜索。
我使用这种技术在一大块文档文本中查找社会安全号码,我将所有数字转换为#符号,我只需要查找### - ## - ####
答案 5 :(得分:0)
对于它的价值,您可以使用moment.js来执行此操作。
var check1 = "2012-02-05T07:42:47.000Z";
alert(moment(check1));
//Sat Feb 04 2012 23:42:47 GMT-0800
var check2 = "201-02-05T07:42:47.000Z";
alert(moment(check2));
//Invalid date