【发布时间】: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