用点替换逗号并删除所有点,但最后一个正则表达式

我想执行以下操作:将逗号分隔符更改为指向并删除除最后之外的所有点(例如 123,123.11 -> 123.123.11 -> 123123.11)


这就是我的做法:


let val = '123,123.11'


val = val ? val.replace(',', '.').replace(/\.(?=.*\.)/g, '') : '';


console.log(val)

是否可以只用一个替换而不是两个替换来完成?(我很确定它是,但我是正则表达式的菜鸟,所以会感谢所有的答案以及你是如何学习正则表达式的)

愚蠢的我刚刚意识到为什么我首先将所有逗号更改为点,因为如果我切换到德语,数字会变成42.334,83我的格式变得不正确.replace(/,/g, '') : '',所以我首先将所有逗号更改为点,然后删除除最后一个以外的所有点,但这似乎是笨拙的解决方案


慕森卡
浏览 155回答 3
3回答

慕仙森

如果你想要一个非正则表达式的解决方案,你可以用逗号分割并加入一个空字符串。console.log('123,123.11'.split(',').join(''))console.log('123,456,789.987'.split(',').join(''))

幕布斯6054654

是的,通过/,|\.(?=.*\.)/这个想法是使用 RegEx |(管道)字符来匹配和替换除了您匹配的句点之外的所有逗号。let val = '123,123.11'val = val ? val.replace(/,|\.(?=.*\.)/g, '') : '';console.log(val)

元芳怎么了

const result =  "55,123,123.11".replace(/,/g, '');     console.log(result);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript