2

我有 MMYY模式(信用卡到期)

我需要分析每个部分(01 和 14):所以我尝试了:

'0114'.split(/\d{2}/i) //  ["", "", ""]

它实际上将 2 个数字视为分隔符,因此我什么也得不到。

但是,我设法做到了:

'0114'.match(/\d{2}/ig) //["01", "14"]

但我想知道split

可以这样做吗split

4

3 回答 3

9

例如:

"1234".split(/(?=..$)/) => ["12", "34"]

任意长度字符串的通用解决方案似乎是不可能的,我们能得到的最好的解决方案是:

str.split(str.length & 1 ? /(?=(?:..)*.$)/ : /(?=(?:..)+$)/)
于 2013-03-21T09:42:39.037 回答
3

这应该这样做:

   '0114'.split(/(?=..$)/)
于 2013-03-21T09:43:25.287 回答
1

没有理由使用正则表达式 - 我只是使用子字符串:

var str = '0114';
var month = str.substr(0, 2);
var year = str.substr(2, 2);
console.log(month, year); // 01 14
于 2013-03-21T09:45:22.293 回答