Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery拉取不带美元符号的货币_Jquery_Regex_Replace - Fatal编程技术网

jQuery拉取不带美元符号的货币

jQuery拉取不带美元符号的货币,jquery,regex,replace,Jquery,Regex,Replace,我有一个标签,上面有价格(即150美元)。我想使用jQuery只提取不带美元符号($)的文本值 $150.00 我想将上述内容输出为150.00您可以使用空字符串替换$字符: var price = $("div").text().replace("$", ""); 注意,在你的确切例子(有间隔)的情况下,空白区域不会被移除。如果您继续使用字符串作为数字(例如,通过parseFloat),这无关紧要,但如果您想在其他地方将其作为文本使用,则可能需要使用jQuery删除空白 更新-基于评论

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


$150.00
我想将上述内容输出为
150.00

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

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

注意,在你的确切例子(有间隔)的情况下,空白区域不会被移除。如果您继续使用字符串作为数字(例如,通过

parseFloat
),这无关紧要,但如果您想在其他地方将其作为文本使用,则可能需要使用jQuery删除空白

更新-基于评论

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

var convertedToNumber=parseFloat(价格)

现在您已经有了一个数字,可以对其执行数学运算:


var百分比=convertedToNumber*0.95
$('div').text().replace('$','')实现您的目的?

使用replace更好,但我建议您可以从字符串中删除任何货币符号,如

$ 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);
}

这是可行的,但现在我需要修改我的问题,因为我正试图将这个数字乘以.95,并发出测试警报,即,
var thePrice=$(“div”).text()。替换(“$”,”);风险值为百分之五=$((价格)*.95);警报(百分之五)不确定您试图在那里做什么,但是您正在将字符串包装到jQuery对象中,然后尝试将该对象乘以0.95。使用
parseFloat
将字符串解析为数字,不要将其放入jQuery对象中!我试图显示一个折扣价格的基础上,一个div与当前的价格在它。这是完美的工作!还有一个..有什么方法可以使它在显示时只显示数字后2位小数?您可以使用
toFixed
方法:
if (price.indexOf('.') == 0) {
        price = parseFloat(price.split('.')[1]);
}else{
        price = parseFloat(price);
}