我想执行以下操作:将逗号分隔符更改为指向并删除除最后之外的所有点(例如 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, '') : '',所以我首先将所有逗号更改为点,然后删除除最后一个以外的所有点,但这似乎是笨拙的解决方案
3 回答
慕仙森
TA贡献1827条经验 获得超8个赞
如果你想要一个非正则表达式的解决方案,你可以用逗号分割并加入一个空字符串。
console.log('123,123.11'.split(',').join(''))
console.log('123,456,789.987'.split(',').join(''))
幕布斯6054654
TA贡献1876条经验 获得超7个赞
是的,通过/,|\.(?=.*\.)/
这个想法是使用 RegEx |(管道)字符来匹配和替换除了您匹配的句点之外的所有逗号。
let val = '123,123.11'
val = val ? val.replace(/,|\.(?=.*\.)/g, '') : '';
console.log(val)
添加回答
举报
0/150
提交
取消