我发现这个替换代码看起来像正则表达式,但我无法破译
new Date().toISOString().
replace(/[z|t|\.]/gim," ").
replace(/\d{3}\s$/gim, " ").
replace(/:\d{2}\s+$/, " ").
trim() + "\n")
抱歉,如果那个含糊不清。我不确定我在看什么
答案 0 :(得分:4)
代码


 new Date()。toISOString()


&#xA ; 生成类似于此内容的内容
&#xA;&#xA; <前> 2015-07-01T17:21:22.123Z&#xA;
& #xA;&#xA; 正则表达式将其格式化为
&#xA;&#xA; 2015-07-01 17:21&#xA;
&#xA;&#xA; 所有正则表达式都有标志 g
, m
和 i
。直接来自regex101,这意味着:
&#xA;&#xA;&#xA;g修饰符:全局。所有比赛(首场比赛不回归)
&#xA; &#XA;i修饰符:不敏感。不区分大小写的匹配(忽略[a-zA-Z]的情况)
&#xA; &#XA;m修饰符:多行。导致^和$匹配每行的开头/结尾(不仅是字符串的开头/结尾)
&#xA;
第一个正则表达式
&#xA;&#xA; [z | t | \。]&#xA;
&#xA;&#xA; 实际上已经有了一个失误。编写它的人假设 |
表示或,但方括号内不是这种情况。它可以更好地写成
[zt \。]&#xA;
&#xA;&#xA; < p>这将匹配2015-07-01 T
17:21:22 。
123 Z
然后替换&# xA;&#xA; replace(/ [z | t | \。] / gim,“”)&#xA;
&#xA;&#xA; < p>将用空格替换匹配该正则表达式的每个字符。给你新的字符串&#xA;&#xA; 2015-07-01 17:21:22 123&#xA;
&#xA;& #xA; 下一个正则表达式 \ d {3} \ s $
匹配并替换2015-07-01 17:21:22 123
,为您提供:< &p>&#xA;&#xA;
2015-07-01 17:21:22&#xA;
&#xA;&#xA; 最后正则表达式:\ d {2} \ s + $
匹配并替换2015-07-01 17:21 :22
,为您提供
2015-07-01 17:21&#xA;
&#xA;&#xA; 然后修剪额外的空格。
&#xA;&#xA;总而言之,这并不是一种做你想做的事情的好方法。你可以用子串或者像其他人已经说过的那样做得更好。
&#xA;答案 1 :(得分:2)
ISO字符串日期以如下格式打印日期:
2015-07-01T17:20:52.214Z
/[z|t|\.]/
- 似乎是[zt.]
的错误类型 - 替换所有“z”,“t”或“。”字符。 g
是全局的,i
不区分大小写,m
是多行的(因为ISO日期只有一行,所以没用)。这适用于所有regexen。
这将取代之前的T
,最后Z
的空格以及.
之前的214
。
/\d{3}\s$/
- 3个数字后跟一个固定在该行末尾的空格。这将替换214
以及从先前替换中添加的空间。
/:\d{2}\s+$/
- 一个冒号,后跟两个数字,后跟一个或多个固定在该行末尾的空格。这将替换:52
(秒部分)以及之前替换所添加的空格。
.trim
删除最终替换后添加到末尾的空格。你最终得到:
2015-07-01 17:20
...或当前年 - 月 - 日24小时:分钟
这很好,但可能不需要多次替换。如果您需要进行大量的日期格式化,我建议使用momentjs库,这使得这种事情变得非常简单。您也可以使用其他日期方法构建它,例如.getMonth
。
答案 2 :(得分:2)
更可读的方法是:
var date = new Date().toISOString();
date = date.substr(0, 10) + ' ' + date.substr(11, 8);
答案 3 :(得分:1)
不知道原因,但可以解释替换正在做什么
.replace(/[z|t|\.]/gim," ") // replace with space any z,t or .
// case insenzitive multiline
.replace(/\d{3}\s$/gim, " ") // replace with space a group of
// 3digits followed by 1 space at the
// end of string
.replace(/:\d{2}\s+$/, " ") // replace the group of :, 2 digits
// and at least 1 space from the tail
// of string with space