【发布时间】:2011-11-26 05:47:33
【问题描述】:
我有一个标有价格的标签(即 150.00 美元)。我想使用 jQuery 只提取不带美元符号 ($) 的文本值。
<div>
$150.00
</div>
我想将以上内容输出为150.00
【问题讨论】:
我有一个标有价格的标签(即 150.00 美元)。我想使用 jQuery 只提取不带美元符号 ($) 的文本值。
<div>
$150.00
</div>
我想将以上内容输出为150.00
【问题讨论】:
使用替换更好,但我建议您可以从字符串中删除任何货币符号,例如
$ 150.00
Fr. 150.00
€ 689.00
以上三种货币符号我已经测试过了。你也可以为其他人做。
var price = $("div").text().replace(/[^\d\.]/g, '');
上面的正则表达式将删除不是数字或句点的所有内容。因此,您可以获得不带货币符号的字符串,但如果您控制台输出为“Fr. 150.00”,那么您将获得价格为
console.log('price : '+price);
output = price : .150.00
这是错误的,所以你检查“。”的索引。然后拆分它并得到正确的结果。
if (price.indexOf('.') == 0) {
price = parseFloat(price.split('.')[1]);
}else{
price = parseFloat(price);
}
【讨论】:
您可以使用replace 将$ 字符替换为空字符串:
var price = $("div").text().replace("$", "");
请注意,在您的确切示例(具有该间距)的情况下,不会删除空格。如果您打算将字符串用作数字(例如通过parseFloat),这并不重要,但如果您想在其他地方将其用作文本,您可能需要使用 jQuery 删除空格.trim.
更新 - 基于 cmets
replace 返回一个字符串。获得该字符串后,您可以使用 parseFloat(或 parseInt,但您使用的是浮点数)将其解析为数字:
var convertedToNumber = parseFloat(price);
现在您已经有了一个数字,您可以对其进行数学运算:
var percentage = convertedToNumber * 0.95;
【讨论】:
var thePrice = $("div").text().replace("$", ""); var isFivePercent = $((thePrice) * .95); alert(isFivePercent);
parseFloat将字符串解析为Number,不要放在jQuery对象中!
toFixed方法:developer.mozilla.org/en/Core_JavaScript_1.5_Reference/…
$('div').text().replace('$', ''); 会达到你的目的吗?
【讨论】: