将货币格式转换为数字

时间:2011-12-28 10:10:15

标签: javascript jquery

我在html中有以下标记我不希望取得$,因为我只想要计算价格。

<span id="testspan">$101.82</span>

在上面的span标签中,我想只计算101.82的值。

我使用html()来获取值

var csqft_price = $('#testspan').html();
var price= parseFloat(csqft_price);

但我用$得到它所以我无法做计算我该怎么做。

7 个答案:

答案 0 :(得分:14)

您可以使用

var csqft_price = $('#testspan').html();
var number = Number(csqft_price.replace(/[^0-9\.]+/g, ""));

这已在SO here上发布。

答案 1 :(得分:3)

以下测试第一个字符是否为美元符号,如果是,则使用其余字符串:

var csqft_price = $('#testspan').html();
var price = +(csqft_price.charAt(0)==="$" ? csqft_price.substr(1) : csqft_price);

当然,如果您知道总是是美元符号,您可以这样做:

var price = +csqft_price.substr(1);

注意:我通常更喜欢unary plus operator将字符串转换为数字,因此我在上面的答案中使用了 - 如果您愿意,可以将+(...)更改为parseFloat(...)

答案 2 :(得分:1)

我会将所有非数字和点替换为no,而不是替换为parseFloat:

var textValue = '$101.82';
var floatedValue = parseFloat(textValue.replace(/[^\d\.]/, ''));
alert(floatedValue);

示例:http://jsfiddle.net/MEY9R/

答案 3 :(得分:0)

尝试使用javascript“replace”函数替换$符号,并将$符号替换为空值,如下所示:

var vsqft_price = $('#testspan').html();
var vsqft_float = vsqft_price.replace("$", "");
var price= parseFloat(csqft_float);

答案 4 :(得分:0)

试试这个 -

   var csqft_price = $('#testspan').text();
    var s = csqft_price.substr(1);
    alert(s);

http://www.w3schools.com/jsref/jsref_substr.asp

答案 5 :(得分:0)

使用此

var csqft_price = $('#testspan').html();
var price=parseFloat(csqft_price.replace('$',''));
alert(price);

并使用价格进行计算。

答案 6 :(得分:0)

ku4js-kernel有一个甜蜜的$ .money类。你可以只需$ .money.parse(&#34; $ 101.82&#34;)然后做你想做的事。

你可以获得价值()并使用数字甚至更好,只需保留金钱并进行操作。您可以查看文档here