代码之家  ›  专栏  ›  技术社区  ›  The Newbie

regex-仅将输入和输出替换为小数?[复制品]

  •  0
  • The Newbie  · 技术社区  · 5 年前

    有人用正则表达式从字符串中去掉lat/long吗?例如:

    编号:39.825-86.88333

    0 回复  |  直到 15 年前
        1
  •  4
  •   meouw    15 年前
    var latlong = 'ID: 39.825 -86.88333';
    
    var point = latlong.match( /-?\d+\.\d+/g );
    
    //result: point = ['39.825', '-86.88333'];
    
        2
  •  8
  •   Gumbo    15 年前

    匹配一个值

    -?\d+\.\d+
    

    对于这两个值:

    (-?\d+\.\d+)\ (-?\d+\.\d+)
    

    如果字符串始终具有以下形式:

    "ID: 39.825 -86.88333".match(/^ID:\ (-?\d+\.\d+)\ (-?\d+\.\d+)$/)
    
        3
  •  2
  •   Sean Bright Sean Stinehour    15 年前
    function parseLatLong(str) {
        var exp = /ID:\s([-+]?\d+\.\d+)\s+([-+]?\d+\.\d+)/;
    
        return { lat: str.replace(exp, "$1"), long: str.replace(exp, "$2") };          
    }
    
    function doSomething() {
        var res = parseLatLong("ID: 39.825 -86.88333");
    
        alert('Latitude is ' + res.lat + ", Longitude is " + res.long);
    }