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
?