【问题标题】:how to validate UTC format date如何验证 UTC 格式日期
【发布时间】:2021-05-29 11:32:05
【问题描述】:

你能帮我写一个下面格式的正则表达式吗?

“2020-02-07 15:45:25.763437 UTC+0000”

我的 rex 也应该接受以下格式: "2020-02-07 15:45:25"

我找到了如何找到“2020-02-07 15:45:25”,但我不知道如何将第二部分设为可选?请你帮我弄清楚好吗?

^([0-9]{4})-([0-1][0-9])-([0-3][0-9])\s([0-1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9])$

我正在打字。

【问题讨论】:

  • @ccarstens:它们不一样,我的第二种类型不同,UTC 之后的最后一部分是可选的
  • 它们不一样,但使用相同的构建块。你试过使用它们吗?

标签: javascript regex typescript


【解决方案1】:

我使用以下表达式解决了我的问题:

let regexpEmail =   new RegExp('^([0-9]{4})-([0-1][0-9])-([0-3][0-9]) ([0-1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).?([0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?)( ([UTC])\\+[0-9][0-9][0-9][0-9])?$');
console.log("R1:" + regexpEmail.test('2020-02-07 15:45:25.763437 UTC+0000'));//"R1:true"
console.log("R2:" + regexpEmail.test('2020-02-07 15:45:25.763437')); //"R2:true" 
console.log("R3:" + regexpEmail.test('2020-02-07 15:45:25.763437 UTC+'));//"R3:false"
console.log("R4:" + regexpEmail.test('2020-02-07 15:45:25.7'));//"R4:true" 
console.log("R5:" + regexpEmail.test('2020-02-07 15:45:25'));//"R5:true" 
console.log("R6:" + regexpEmail.test('2020-02-07 15:45:25.763437 '));//"R6:false"
console.log("R7:" + regexpEmail.test('2020-02-07 15:45:25.'));//"R7:true"
console.log("R8:" + regexpEmail.test('2020-02-07'));//"R8:false"
console.log("R9:" + regexpEmail.test('2020-02-07 15:45'));//"R9:false"
console.log("R10:" + regexpEmail.test('2020-02-07 15:45:9'));//"R10:false"

我希望别人觉得它有用。

【讨论】:

  • 为什么是[U][T][C] 而不仅仅是UTC
  • 现在正则表达式匹配“... U+0100”、“... T+0200”或“... C+0300”——但“... UTC+0400”。它应该只是UTC,而不是[UTC](甚至可能不是(UTC),因为在一个组中捕获它是没有意义的)
  • @knittl:感谢您的评论,我只需要 UTC+0000,它对我有用。我将自己的 reg 更改为 ([UTC])\\+[0][0][0][0])?
  • 但正则表达式 [UTC]\\+0000 确实 not 匹配“UTC+0000”;它只匹配“U+0000”、“T+0000”、“C+0000”。 […] 表示一个字符类,只能匹配单个字符。
  • 那么为什么要首先使用正则表达式?存在更好的(即不重新发明)方法:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…> 或 npmjs.com/package/iso-datestring-validator>
猜你喜欢
  • 1970-01-01
  • 2014-10-23
  • 2016-05-11
  • 2020-10-08
  • 2017-04-04
  • 1970-01-01
  • 1970-01-01
  • 2021-06-26
  • 1970-01-01
相关资源
最近更新 更多