首页 > 解决方案 > 用于格式化时间的 Javascript 正则表达式

问题描述

我们组织的风格指南以这种格式指定日期时间:Dec. 31 08:45 a.m.. 我们的网站运行 Drupal,这是一个基于 PHP 的 CMS。date()它的字段格式模板允许在 HPHP函数中定义的编码中指定日期格式字符串。它只提供a, 这给了pm, 和A, 这给了我PM, 但我没有看到任何指定带有句点的东西。

不幸的是,没有一种简单的方法可以连接到平台来定义自定义日期格式,所以我认为最简单的方法是使用 javascript 进行查找和替换。我想要做的是替换格式NN:NN amNN:NN pmNN:NN a.m.等的实例。

正则表达式从来都不是我的强项。我可以很好地匹配日期时间格式([0-9][0-9]:[0-9][0-9] pm),但我不知道如何执行正确的替换。

当它们遵循四位数的时间格式时,如何用正确的缩写版本替换am和?pm

标签: javascriptregex

解决方案


'Dec. 31 08:45 AM, Jan. 1 10:15 pm'.replace(/(\d{2}:\d{2}) (a|p)(m)/ig, (match, p1, p2, p3) => {
  return `${p1} ${p2}.${p3}.`.toLowerCase();
});

产生结果

Dec. 31 08:45 a.m., Jan. 1 10:15 p.m.

推荐阅读