我想将字符串“15,678”转换为值15678.方法parseInt()
和parseFloat()
都返回15为“15,678”。有一个简单的方法吗?
答案 0 :(得分:38)
最简单的选项是删除所有逗号:parseInt(str.replace(/,/g, ''), 10)
答案 1 :(得分:10)
一种方法是删除所有逗号:
strnum = strnum.replace(/\,/g, '');
和然后将其传递给parseInt:
var num = parseInt(strnum.replace(/\,/g, ''), 10);
但你需要在这里小心。使用逗号作为千位分隔符是一种文化事物。在某些地区,数字1,234,567.89
将被写为1.234.567,89
。
答案 2 :(得分:8)
如果你只有数字和逗号:
+str.replace(',', '')
如果可以,+
会将字符串str
转换为数字。为了使其尽可能清晰,请用parens包裹它:
(+str.replace(',', ''))
因此,如果你在一个语句中使用它,它在视觉上更加独立(+ + x看起来非常类似于++ x):
var num = (+str1.replace(',', '')) + (+str1.replace(',', ''));
Javascript代码约定(请参阅“混淆优缺点”,从底部开始的第二部分):
答案 3 :(得分:2)
你可以这样做:
var value = parseInt("15,678".replace(",", ""));
答案 4 :(得分:1)
使用正则表达式在解析之前删除逗号,如此
parseInt(str.replace(/,/g,''), 10)
//or for decimals as well:
parseFloat(str.replace(/,/g,''))