我从数据库中获取有时候有空格的日期(由于我没有控制权,因此没有办法清理数据库)。我需要删除空格,以便我可以将其格式化为Javascrpt日期。
例如:
5 : 03 PM
如您所见,这是不正确的。我已经看过Moment.js和Regex来移除冒号周围的空间,但不确定它是如何完成的,或者这是否正确。有没有办法删除这个空间?
全部谢谢!
答案 0 :(得分:6)
仅删除冒号周围的空格,请尝试以下操作: (其中$1
指的是第一个捕获组,即唯一的(:)
)
a.replace(/\s*(:)\s*/, "$1");
或者如果您希望进一步简化它,没有任何捕获组;
a.replace(/\s*:\s*/, ":");
答案 1 :(得分:4)
如果你愿意,你可以用Moment.js实际解析那个日期字符串,你只需要在格式化字符串中包含这些空格:
var time = moment('5 : 03 PM', 'h : m A');
然后你可以随意格式化它:
time.format('h:mmA'); // "5:30PM"
time.format('hh:mm A'); // "05:03 PM"
time.format('HH:mm'); // "17:03"
答案 2 :(得分:1)
为了完整,你可以使用regexp:
'5 : 03pm'.split(':')
.map(function(part) { return part.trim(); })
.join(':');