如何编写RegExp以匹配第N个字符

时间:2016-07-20 04:58:45

标签: regex regular-language

有一个字符串如下:

2016,07,20,19,20,25

如何将此字符串传输到此格式字符串:

2016-07-20 19:20:25

非常感谢!

1 个答案:

答案 0 :(得分:0)

具有数组切片的解决方案可以是

let parts = [];
let date = "2016,07,20,19,20,25"; 
let formatted = ((parts = date.split(",")).slice(0,3)).join("-") + ' ' + parts.slice(3).join(":")

你也可以用String#replace和一个函数作为2参数;

let date = "2016,07,20,19,20,25"; 
date.replace(/,/g, (() => {
  let count = 0;
  return (match, position) => {
    count += 1;
    if(count == 3) return ' ';
    else if(count < 3) return '-';
    else return ':';        
  });
})())

注意:两种方法都假定格式始终是提供的格式 由逗号分隔的6个数字