使用Jquery从字符串中获取数字
在我的系统中,根据用户设置的货币配置,var价格将具有不同的格式。所以我可以得到如下值: a)价格:4.5欧元b)价格:4.5欧元c)价格:英国标准。4.5 | |d)价格:4.5₵ 我不知道货币符号是在数字之前是,还是在数字之后是,我也不知道它将是什么符号(这是OpenERP框架,因此更改格式不是一个选项)使用Jquery从字符串中获取数字,jquery,string,numbers,Jquery,String,Numbers,在我的系统中,根据用户设置的货币配置,var价格将具有不同的格式。所以我可以得到如下值: a)价格:4.5欧元b)价格:4.5欧元c)价格:英国标准。4.5 | |d)价格:4.5₵ 我不知道货币符号是在数字之前是,还是在数字之后是,我也不知道它将是什么符号(这是OpenERP框架,因此更改格式不是一个选项) 如何在不考虑货币符号的情况下获取数字???获取字符串后,您可以替换每个非数字字符和点: var number = '$ 4.5'.replace(/[^\d\.]/g, ''); 然后您
如何在不考虑货币符号的情况下获取数字???获取字符串后,您可以替换每个非数字字符和点:
var number = '$ 4.5'.replace(/[^\d\.]/g, '');
然后您可以解析它:
number = parseFloat(number);
//Alternatively
number = +number;
我做了以下测试:
$(document).ready(function(){
var price1 = "$ 4.5";
var price2 = "4.5 €";
var price3 = "Bs. 4.5";
var price4 = "4.5 ₵";
$("#test").append(price1.split(" ")[1]);
$("#test").append(price2.split(" ")[0]);
$("#test").append(price3.split(" ")[1]);
$("#test").append(price4.split(" ")[0]);
});
工作小提琴:我通过使用JQuery替换任何不是数字或“.”(点)的字符来解决您的问题 我创建了几个跨度,其中的值如下:
<span>$4.10</span>
<span>£7.76</span>
<span>€23.44</span>
下面是一个可以处理的JSFIDLE:
我希望它能帮上忙=)您是只想要数字还是带有货币属性的值?只需查找数字即可<代码>/[\d.]+/?你在乎有什么符号吗?也许我需要一个“regex”,但我不知道怎么做:(我需要4.5作为一个数字,在数学运算中使用它,正如我说的:“我不知道货币符号是在数字之前还是之后”。Karl AndréGagnon提供的解决方案正是我所需要的。Thanxs用于回答我的问题:DIt确实有效,但Karl AndréGagnon提供的解决方案较短。Thanxs用于回答我的问题:D
$("span").each(function(){
var a = $(this).text().replace(/[^0-9.]/g, "");
alert(a);
});