背景:我想添加和减去数字。我正在使用HTML数据属性。 parseInt()和Number()并没有像我想象的那样工作。
<div class="originalNumber" data-original-number="1,000,000">1,000,000</div>
<div class="bucket1" data-bucket="100,000">100,000</div>
<div class="bucket2" data-bucket="200,000">200,000</div>
<div class="bucket3" data-bucket="300,000">300,000</div>
我得到原始号码:
var getOriginal=$(".originalNumber").data("original-number");
console.log = 1,000,000
现在我想添加和减去它。例如,单击bucket1,1,000,000将变为900,000(1,000,000-100,000)
问题是我无法将字符串转换为数字。我尝试过使用parseInt()和Number()无效。
var getOriginal=parseInt(getOriginal);
console.log(getOriginal);
返回1
var getOriginal=Number(getOriginal);
console.log(getOriginal);
返回NaN
我在这里缺少什么?
答案 0 :(得分:2)
尝试使用正则表达式:
var getOriginalNumeric = parseInt(getOriginal.replace(/[^\d\.]/gi, ''));
这将删除除数字和小数之外的任何内容。
答案 1 :(得分:1)
在使用parseInt()之前,您需要从包含该数字的字符串中删除所有逗号。
This question有一些关于最佳方法的信息。
答案 2 :(得分:1)
问题是逗号被解释为十进制符号,这是大多数国家/地区的标准,但美国(例如)使用句点作为小数点分隔符。
您需要替换逗号:
getOriginal = parseInt(getOriginal.replace(/,/g, ""), 10);