使用Jquery从字符串中获取数字

使用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价格将具有不同的格式。所以我可以得到如下值:

a)价格:4.5欧元b)价格:4.5欧元c)价格:英国标准。4.5 | |d)价格:4.5₵

我不知道货币符号是在数字之前是,还是在数字之后是,我也不知道它将是什么符号(这是OpenERP框架,因此更改格式不是一个选项)


如何在不考虑货币符号的情况下获取数字???

获取字符串后,您可以替换每个非数字字符和点:

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