Javascript 使用正则表达式为最多前两组两个数字添加分隔符

Javascript 使用正则表达式为最多前两组两个数字添加分隔符,javascript,regex,Javascript,Regex,我有以下正则表达式,在这些情况下第一次和第二次出现错误时,每两个数字添加一个分隔符: str.replace(/^(\d{2})(\d{2})/, '$1/$2/') entered value result expectation 1 ✓ 22 x(22) 22/ 222 x(222) 22/2 2222 ✓(22/22/

我有以下正则表达式,在这些情况下第一次和第二次出现错误时,每两个数字添加一个分隔符:

str.replace(/^(\d{2})(\d{2})/, '$1/$2/')

entered value   result          expectation
1               ✓
22              x(22)              22/
222             x(222)             22/2
2222            ✓(22/22/)
22222           ✓(22/22/2)
222222          ✓(22/22/22)
 ...
22222222222     ✓(22/22/2222222)

如何解决这两种错误情况?

我认为单用一个简单的替换并不是解决这两种问题的好方法。我会使用回调:在第二组中匹配最多2个数字,如果两个数字都匹配,则只插入第二个
/

const change=str=>str.replace(
/^(\d{2})(\d{0,2})/,
({g1,g2)=>`${g1}/${g2+(g2.length==2?'/':'')`
);
控制台日志(更改('2'));
控制台日志(更改('22'));
控制台日志(更改('222');
console.log(change('2222'));
console.log(更改('22222'));

console.log(change('2222222'))
您想要的是
22/22/2222222
而不是
22/22/22/22/2