我想把3011转成3.0.11,即最后2位合成一位
'3011'.replace(/(\d{1})/g,'$1.').replace(/\.$/,'')
可以转成3.0.1.1
但是这种写法为什么得不到想要3.0.11
'3011'.replace(/(\d{1})(\d{2})$/g,'$1.$2')
得到的是30.11为什么这种写法得不到3.0.11,想要得到这种写法改怎改?
我想把3011转成3.0.11,即最后2位合成一位
'3011'.replace(/(\d{1})/g,'$1.').replace(/\.$/,'')
可以转成3.0.1.1
但是这种写法为什么得不到想要3.0.11
'3011'.replace(/(\d{1})(\d{2})$/g,'$1.$2')
得到的是30.11为什么这种写法得不到3.0.11,想要得到这种写法改怎改?
'3011'.replace(/(\d)(\d)(\d{2})$/g,'$1.$2.$3')
//"3.0.11"
'9873011'.split('').join('.').replace(/\.(?=\d$)/,'')
//"9.8.7.3.0.11"
正则不熟练,用的笨办法。
let str = '123456789'
str.substring(0,str.length-2).replace(/(\d{1})/g,'$1.')+str.substring(str.length-2)
//1.2.3.4.5.6.7.89
var str = '301126562654';
str.replace(/\d/g, function (i, j) {
if (j >= str.length - 2) {
return i
} else {
return i + '.'
}
})
var str = '301126562654';
str.replace(/\d/g, (i, j)=> j>=str.length-2?i:i+'.')
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
思路:替换所有的数字为数字+.,但数字后必须至少还有两个数字