Javascript:将字符串拆分为特定长度的字符串

时间:2019-01-08 06:11:09

标签: javascript

我有一个字符串可以解析为Date

const a = '18122122'

并且这种方式(经常使用substr)解析它是丑陋且容易出错的

const date = new Date('20' + a.substr(0, 2), a.substr(2, 2) - 1, a.substr(4, 2), a.substr(6,2 ))

我想念像这样的方法吗

const dateArray = a.<method>(2) // return ['18', '12', '21', '22']
dateArray[0] = '20' + dateArray[0]
dateArray[1] -= 1;
const date = new Date(...dateArray)

2 个答案:

答案 0 :(得分:3)

您可以使用全局正则表达式来匹配重复的两位数实例,然后根据需要替换数组项:

const a = '18122122';
const dateArray = a.match(/\d{2}/g);
dateArray[0] = '20' + dateArray[0];
dateArray[1] -= 1;
const date = new Date(...dateArray);
console.log(date);

答案 1 :(得分:1)

尝试:

const a = "18042019";
let [, day, month, year] = a.match(/^(\d{2})(\d{2})(\d{4})/);
new Date(year, --month, day);

Date参数是包含数字的字符串无关紧要,因为构造函数始终会将每个参数类型转换为Number