【问题标题】:RegEx | Detecting numbers < 10 in string (date representation) [duplicate]正则表达式 |检测字符串中<10的数字(日期表示)[重复]
【发布时间】:2019-12-29 20:09:16
【问题描述】:

我正在使用 JavaScript 在客户端文化中呈现日期。

(new Date("2020-01-01")).toLocaleDateString()

在我的情况下,返回

"1.1.2020"

(但也可以返回 2020 年 1 月 1 日或客户拥有的任何文化)

这些数字必须至少有两位数字 (=> 01.01.2020)。

通过以下方法,我尝试识别只有一位数字的数字,但它在我的测试用例中无法正常工作:

[^\d]([\d])[^\d]

测试用例:

1.2.2020
22.1.2000
1-2-2020
1311/29/9
2000/1/1
22/1/2000

有谁知道如何解决这个问题而不将其分成三个部分并在 JavaScript 中检查每个部分?

提前致谢!

【问题讨论】:

  • 除了非数字 ([^\d]) 之外,您还必须检查字符串的开头和结尾(^$),类似于 (^|[^\d])([\d])([^\d]|$) 或更简单的 (^|\D)([\d])(\D|$)
  • 2020-01-01 将被解析为 UTC,因此对于格林威治以西的用户,toLocaleDateString 将生成 2019-12-31 的日期。 toLocaleDateString 将根据主机“语言环境”设置产生不同的格式字符串。

标签: javascript regex date


【解决方案1】:
(new Date("2020-01-01")).toLocaleDateString("de-DE",{
  day:"2-digit",
  month:"2-digit",
  year:"numeric"
})

您可以查看更多选项here

【讨论】:

  • 成功了,非常感谢! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-15
  • 1970-01-01
  • 1970-01-01
  • 2010-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多