【问题标题】:extract a float from a string in javascript从javascript中的字符串中提取浮点数
【发布时间】:2014-02-07 18:15:02
【问题描述】:

我知道我们可以从字符串中提取整数值

var x = "> 1";
x = parseInt(x.match(/\d+/)[0], 10));

如何从字符串中获取浮点值

示例:var x = "> 1.1"

我知道我们可以使用x.substring(2);

但是对于更通用的解决方案?因为上面不会给出准确的结果

var x = "1.1"

那么从

中提取浮点值1.1的最佳方法是什么
var x = "> 1.1"

【问题讨论】:

  • /\d+\.?\d*/怎么样

标签: javascript jquery regex


【解决方案1】:

使用parseFloat 和一个正则表达式来匹配带有可选小数和减号的数字。

var f = parseFloat(x.match(/-?(?:\d+(?:\.\d*)?|\.\d+)/)[0]);

【讨论】:

    【解决方案2】:
    x = parseFloat(x.match(/[-+]?([0-9]*\.[0-9]+|[0-9]+)/));
    

    【讨论】:

    • 请解释您的解决方案,以便未来访问此问题的人了解它如何解决手头的问题。
    • 参数匹配一个带有可选 + 或 - 号后跟至少一位数字和可选小数点的数字,小数点后至少有一位数字。
    【解决方案3】:

    您可以尝试以下方法,使用 match 函数仅提取浮点数或整数等数字作为数组。

    str = 'On schedule: 3243.8 miles away (4491 minutes)';
    values = str.match(/[0-9.]+/g); //=> ["3243.8", "4491"]
    

    【讨论】:

      【解决方案4】:

      使用parseFloat()。它完全符合您的要求。

      【讨论】:

      • 不会跳过开头的>
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-04
      • 2010-10-30
      • 2022-09-23
      • 2017-06-09
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多