我正在使用JavaScript将XML数据转换为HTML。
日期字段如下:
日期字段如下:
20120319
我想将其转换为更易读的格式,如下:
03/19/2012
在JavaScript中有一种简单的方法可以实现吗?20120319
我想将其转换为更易读的格式,如下:
03/19/2012
在JavaScript中有一种简单的方法可以实现吗?一种方法是这样写:
s = s.replace(/(\d\d\d\d)(\d\d)(\d\d)/g, '$2/$3/$1');
使用正则表达式替换四位数字,后跟两位数字,再后跟两位数字的序列,将第二个数字加上/
,再加上第三个数字,再加上/
,最后加上第一个数字。
(\d\d\d\d)
不够美观 - 更好的写法是 (\d{4})
。 - Neysor\d{4}
,但由于没有提到,我不确定原帖作者是否对正则表达式有任何了解,所以我认为最好使用尽可能简单的语法。 - ruakhvar dateStr = "20120319";
var match = dateStr.match(/(\d{4})(\d{2})(\d{2})/);
var betterDateStr = match[2] + '/' + match[3] + '/' + match[1];
该代码将按照美国的日期格式(月/日/年)进行硬编码。如果你想使用大部分欧洲国家使用的日期格式(日/月/年),请交换match[2]
和match[3]
。
如果你想要根据当前语言环境的偏好(月份在前还是日期在前)来自动判断日期格式,可以使用以下启发式方法:
(new Date('01/02/1970').getDate() === 2)
另一种方法是编写
var s = String("20181011"); s = s.slice(4,6)+"/"+s.slice(6,8)+"/"+s.slice(0,4)
仅使用String对象。
exp.replace(/(\d{4})(\d\d)(\d\d)/g, '$2/$3/$1');
- Daniel