我有
var value = $120,90
var value = $1,209.00
目前我用
替换第一个案例 value = value.replaceAll(",", ".").replaceAll("[^0-9.]*", "");
这给了我正在寻找:整数12090
第二种情况我运行的问题不是这样的。我怎样才能在Javascript中解决这个问题?
答案 0 :(得分:0)
除非你坚持每个人都输入美元和美分,否则我无法看到你如何使算法有效。我能想到的唯一选择是使用locale来确定数字分隔符。
答案 1 :(得分:0)
你可以使用这个帖子的答案吗?
How can I remove the decimal part from JavaScript number?
他们使用Math.floor()
(向下舍入),Math.ceil()
(向上舍入)或Math.round()
(舍入到最接近的整数)。
答案 2 :(得分:0)
您可以修改regexp。
value = value.replace(/,/g, ".").replace(/^\D|\.(?!\d*$)/g, "");
首先将','替换为'。'第二个替换字符串开头的非数字符号,所有点除了最后一个用空字符串。然后使用parseFloat。
确保完全最好为数据输入创建模板,并且不允许用户以无效格式输入值。