【问题标题】:Parsing floats from a string从字符串解析浮点数
【发布时间】:2014-10-16 09:04:02
【问题描述】:

我想如何解析数组的浮点数:

var array = "-51.2132,0.3100";

我尝试使用match(/\d+/g),但我想使用浮动

关于regex的任何想法

提前致谢

【问题讨论】:

    标签: javascript jquery arrays regex


    【解决方案1】:

    这里不需要正则表达式。您可以先将坐标通过, 拆分以获取值,然后使用ParseFloat 进行转换。试试这个:

    var loc = "-51.2132,0.3100".split(',');
    var lat = parseFloat(loc[0]); // = -51.2132
    var lon = parseFloat(loc[1]); // = 0.31
    

    【讨论】:

    • 嗯,那些可能确实是坐标。不错的猜测!
    • 谢谢,现在我知道海绵宝宝住在哪里了google.nl/maps/place/51%C2%B012%2747.5%22S+0%C2%B018%2736.0%22E/… 为什么你认为它是一个位置?不过,代码很好,所以我+1
    • @JPHellemons 只是基于 -51.232 距离格林威治子午线不远的假设 :)
    • @oscarvady 很高兴为您提供帮助
    【解决方案2】:

    试试这个:

    var floats = array.split(',').map(function(e){return parseFloat(e)});
    // result:
    [-51.2132, 0.31]
    

    此行的作用:首先,将array 拆分为逗号字符:

    array.split(',') // ["-51.2132", "0.3100"]
    

    然后,将该数组中的每个item 替换为parseFloat(item)

    ["-51.2132", "0.3100"].map(function(e){ // For each item in the array
        return parseFloat(e); // Cast the current value to a float.
    }); // [-51.2132, 0.31]
    

    【讨论】:

      【解决方案3】:
      (-?\d+(?:\.\d+)?)
      

      试试这个。抓住比赛。看演示。

      http://regex101.com/r/dZ1vT6/43

      【讨论】:

        【解决方案4】:

        试试这个:

        var array = "-51.2132,0.3100";
        var regex = /-?\d+\.?\d*/g;
        var items = array.match(regex);
        var numbers = items.map(function (item) {
            return parseFloat(item);
        });
        

        http://regexr.com/39o6i

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-03-15
          • 2021-06-30
          • 2018-06-13
          • 2017-09-30
          • 1970-01-01
          • 2010-09-10
          • 2013-02-27
          • 2020-07-06
          相关资源
          最近更新 更多