jQuery拉货币没有美元符号

时间:2011-09-27 17:02:40

标签: jquery regex replace

我有一个标签,里面有一个价格(即$ 150.00)。我想使用jQuery只提取没有美元符号($)的文本值。

<div>
  $150.00
</div>

我想将上面的内容输出为150.00

3 个答案:

答案 0 :(得分:20)

您可以使用replace$字符替换为空字符串:

var price = $("div").text().replace("$", "");

请注意,对于您的确切示例(具有该间距),不会删除空格。如果您继续使用字符串作为数字(例如通过parseFloat)并不重要,但如果您想将其用作其他地方的文本,则可能需要删除空格使用jQuery的.trim

更新 - 基于评论

replace返回一个String。获得该字符串后,您可以使用parseFloat(或parseInt将其解析为数字,但您使用的是浮点数):

var convertedToNumber = parseFloat(price);

现在你已经有了一个数字,你可以对它进行数学运算:

var percentage = convertedToNumber * 0.95;

答案 1 :(得分:5)

使用替换效果更好,但我建议您可以删除字符串中的任何货币符号,如

$ 150.00
Fr. 150.00
€ 689.00

我已经测试了以上三种货币符号。你也可以为其他人做这件事。

var price = $("div").text().replace(/[^\d\.]/g, '');

上面的正则表达式将删除所有不是数字或句号的东西。所以你可以得到没有货币符号的字符串但是如果你控制输出那么“150.00”,那么你将获得价格

console.log('price : '+price);

output = price : .150.00

这是错误的,所以你检查“。”的索引。然后拆分并得到正确的结果。

if (price.indexOf('.') == 0) {
        price = parseFloat(price.split('.')[1]);
}else{
        price = parseFloat(price);
}

答案 2 :(得分:0)

$('div').text().replace('$', '');能否达到你的目的?