我有一个标签,里面有一个价格(即$ 150.00)。我想使用jQuery只提取没有美元符号($)的文本值。
<div>
$150.00
</div>
我想将上面的内容输出为150.00
答案 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('$', '');
能否达到你的目的?