Regex和ISO8601仅形成DateTime 2016-10-18T00:00:00Z

时间:2016-12-13 03:40:55

标签: regex

我的格式为2016-10-18T00:00:00Z。 配置:

var regexIso8601 = /^(\d{4}|\+\d{6})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2}):(\d{2})\.(\d{1,})(Z|([\-+])(\d{2}):(\d{2}))?)?)?)?$/;

但是,它解析字符串" 2322"到DateTime,我不想要那个,我只解析2016-10-18T00:00:00Z。

1 个答案:

答案 0 :(得分:0)

此正则表达式将检查字符串是否与ISO日期格式匹配。

唯一使用的正则表达式是

  • \d数字
  • {n}匹配次数

如果我们不在任何地方使用这些值,则无需使用捕获。

然后我们只在输入字符串上使用RegExp.prototype.test方法。



const isISOFormat = str => /\+*\d{4,6}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2,3}Z/.test(str)

console.log(
  isISOFormat('2016-10-18T00:00:00Z'),
  isISOFormat('2016-10-18')
)