【发布时间】:2011-05-04 06:13:25
【问题描述】:
我想将字符串“15,678”转换为值 15678。方法 parseInt() 和 parseFloat() 都为“15,678”返回 15。有没有简单的方法可以做到这一点?
【问题讨论】:
标签: javascript jquery string-parsing
我想将字符串“15,678”转换为值 15678。方法 parseInt() 和 parseFloat() 都为“15,678”返回 15。有没有简单的方法可以做到这一点?
【问题讨论】:
标签: javascript jquery string-parsing
一种方法是删除所有逗号:
strnum = strnum.replace(/\,/g, '');
然后 将其传递给 parseInt:
var num = parseInt(strnum.replace(/\,/g, ''), 10);
但你需要在这里小心。使用逗号作为千位分隔符是一种文化现象。在某些地区,数字1,234,567.89 会写成1.234.567,89。
【讨论】:
parseInt() 在被调用时应提供一个基数,以消除数字的十六进制解释。
如果你只有数字和逗号:
+str.replace(',', '')
+ 尽可能将字符串str 转换为数字。为了使这一点尽可能清楚,请用括号括起来:
(+str.replace(',', ''))
因此,如果你在语句中使用它,它在视觉上更加独立(+ +x 看起来非常类似于 ++x):
var num = (+str1.replace(',', '')) + (+str1.replace(',', ''));
Javascript 代码约定(参见“令人困惑的优缺点”,倒数第二部分):
【讨论】:
在解析前使用正则表达式删除逗号,像这样
parseInt(str.replace(/,/g,''), 10)
//or for decimals as well:
parseFloat(str.replace(/,/g,''))
【讨论】:
你可以这样做:
var value = parseInt("15,678".replace(",", ""));
【讨论】:
最简单的选择是删除所有逗号:parseInt(str.replace(/,/g, ''), 10)
【讨论】: