【问题标题】:Get number from String with Jquery使用 Jquery 从字符串中获取数字
【发布时间】:2014-04-02 15:05:37
【问题描述】:

在我的系统中,var PRICE 将具有不同的格式,具体取决于用户设置的 CURRENCY 配置。所以我可以得到如下值:

a) 价格:4.5 美元 || b) 价格:4.5 欧元 || c) 价格:Bs。 4.5 || d) 价格:4.5 ₵

我不知道货币符号是before还是after数字,我不知道它会是什么符号(它是OpenERP框架所以改变格式不是一种选择)

尽管有货币符号,我如何获得数字??

【问题讨论】:

  • 您只想要数字还是带有货币属性的值?
  • 只找数字? /[\d.]+/?你在乎有什么符号?
  • 也许我需要一个“正则表达式”,但我不知道如何制作它:(
  • 我需要 4.5 作为数字才能在数学运算中使用它

标签: jquery string numbers


【解决方案1】:

一旦你得到你的字符串,你可以替换每个非数字字符和点:

var number = '$ 4.5'.replace(/[^\d\.]/g, '');

然后就可以解析了:

number = parseFloat(number);
//Alternatively
number = +number;

【讨论】:

    【解决方案2】:

    我通过使用 JQuery 替换任何不是数字或“。”的字符来解决您的问题。 (点)。

    我创建了一些具有如下值的跨度:

    <span>$4.10</span>
      <span>£7.76</span>
      <span>€23.44</span>
    

    然后创建一些 JQuery 来提醒这些值:

    $("span").each(function(){
      var a = $(this).text().replace(/[^0-9.]/g, "");
      alert(a);  
    });
    

    这是一个你可以乱用的 JSFiddle:http://jsbin.com/xelameki/1/edit/

    希望对你有帮助=)

    【讨论】:

    • 它确实有效,但 Karl-André Gagnon 提供的解决方案更短。无论如何都要感谢我的问题:D
    【解决方案3】:

    我做了以下测试:

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

    工作小提琴:http://jsfiddle.net/robertrozas/H4QUu/1/

    【讨论】:

    • 正如我所说:“我不知道货币符号是在数字之前还是之后”。 Karl-André Gagnon 提供的解决方案正是我所需要的。无论如何都要感谢我的问题:D
    猜你喜欢
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 2013-11-15
    • 2011-08-09
    • 1970-01-01
    相关资源
    最近更新 更多