问题描述
在对 Date.toLocaleString()
的返回值进行正则匹配后,返回值在不同浏览器表现不一致。
原因分析
正则匹配时,期待被匹配的字符串格式为 YYYY-MM-DD
,而实际上 Date.toLocaleString()
返回的值在不同语言环境和不同浏览器中格式不同。
解决办法
- 使用
toLocaleString
的参数locales
和options
指定使用哪种语言格式化规则,具体使用方法参照 MDN; - 不使用
toLocaleString
,改用自行封装的日期处理函数; - 不使用
toLocaleString
,改用日期处理库如Moment.js
等。
locales
和options
参数在某些低版本浏览器中是不被支持的,应尽量使用第二、三种方法。