我有YYYY-MM-DDTHH:MM:SS.000
格式的日期字符串
例如:2000-01-01T00:00:00.000
我需要一个正则表达式来检查给定的字符串是否为上述格式。我已经尝试了regex
^(d{4}-d{2}-d{2}Td{2}:d{2}:d{2})Z$
它似乎不起作用。如有任何帮助,我们将不胜感激。
您需要检查正则表达式和生成的日期
const simplifiedPattern = /^(d{4}-d{2}-d{2}Td{2}:d{2}:d{2}.d{3}Z)$/
const testData = ["2000-01-01T00:00:00.000Z", "2000-01-01 00:00:00.000Z"]
const matches = testData.filter(e => simplifiedPattern.test(e))
console.log(matches)
matches.forEach(match => {
const d = new Date(match)
console.log(match === d.toISOString())
})
您的示例缺少Z
,并且忘记了在.
之后匹配最后3个零(需要转义点(:
^(d{4}-d{2}-d{2}Td{2}:d{2}:d{2}.d{3}Z)$
const simplifiedPattern = /^(d{4}-d{2}-d{2}Td{2}:d{2}:d{2}.d{3}Z)$/
const testData = ["2000-01-01T00:00:00.000Z", "2000-01-01 00:00:00.000Z"]
const matches = testData.filter(e => simplifiedPattern.test(e))
console.log(matches)