Javascript 将Google Location LatLong整数转换为浮点
我正在开发一个工具,将Google Location History提供的JSON转换为不同的格式,这样我就可以将它与传单热图插件一起使用。现在的问题是转换整数。我想要实现的是:Javascript 将Google Location LatLong整数转换为浮点,javascript,regex,Javascript,Regex,我正在开发一个工具,将Google Location History提供的JSON转换为不同的格式,这样我就可以将它与传单热图插件一起使用。现在的问题是转换整数。我想要实现的是: Positive Longitudes 1717485672 -> 171.7485672 115855930 -> 11.5855930 99811421 -> 9.9811421 Negative Longitudes -99811421 -> -9.9811421 到目前为止,
Positive Longitudes
1717485672 -> 171.7485672
115855930 -> 11.5855930
99811421 -> 9.9811421
Negative Longitudes
-99811421 -> -9.9811421
到目前为止,我尝试的是:
var longitude = "99811421";
longitude.replace(/(^([2-9]|1[0-9]))/, '$1.');
但是,这只适用于20000000到190000000之间的范围。这对德国来说已经足够了,但对整个世界来说还不够;)
你知道怎么做吗?这个函数将为你“转换”数字,但实际上它所做的只是将数字除以107
此函数将为您“转换”数字,但实际上它所做的只是将数字除以107
如果您正在寻找正则表达式,可以使用此正则表达式:
^(?(?=\d{10}\b)
(\d{3})|
(?(?=\d{9}\b)
(\d{2})|
(?(?=\d{8}\b)
(\d{1}))))
作为一种解释,这个正则表达式是一系列IF条件。在伪代码中是:
if match 10 numbers then capture the first 3
else if match 9 numbers then capture the first 2
else if match 8 numbers then capture the first 1
就个人而言,我会使用除正则表达式之外的另一种解决方案,但如果您想要正则表达式,可以使用这种方法。如果您正在寻找正则表达式,可以使用以下方法:
^(?(?=\d{10}\b)
(\d{3})|
(?(?=\d{9}\b)
(\d{2})|
(?(?=\d{8}\b)
(\d{1}))))
作为一种解释,这个正则表达式是一系列IF条件。在伪代码中是:
if match 10 numbers then capture the first 3
else if match 9 numbers then capture the first 2
else if match 8 numbers then capture the first 1
就我个人而言,我会使用除正则表达式之外的另一种解决方案,但如果你想要正则表达式,你可以使用这种方法。向我们展示你用JavaScript代码做过的尝试,也不要忘记,你可以很容易地从JavaScript中使用
parseFloat
或类似的函数。你在寻找x/10000000
?:p谢谢你@nisargjhaveri。对于我的问题,这将是一个很好的非正则表达式解决方案:)向我们展示您用JavaScript代码尝试过的内容,也不要忘记,您可以轻松使用JavaScript中的parseFloat
或类似函数。您正在寻找x/10000000
p谢谢你@nisargjhaveri。对于我的问题,这将是一个很好的非正则表达式解决方案:)我太专注于寻找正确的正则表达式,以至于我没有看到这个简单的解决方案。非常感谢。非常聪明+1。我发布了正则表达式解决方案,这肯定是一个非常复杂的解决方案。我太专注于找到合适的正则表达式,以至于我没有看到这个简单的解决方案。非常感谢。非常聪明+1。我发布了regex解决方案,这肯定是一个非常复杂的解决方案。谢谢!唯一的问题是这个正则表达式有很多组,这使得JavaScript.replace()
有点棘手。但它在模式匹配方面确实很好。@stekhn,正如您在替换部分中看到的,我将所有的组一起使用,并适用于所有情况。这非常棒,我想我将采用x/10000000方法;)@Fede这与使用正则表达式解析HTML大致相同。这是可能的,但有更好的方法;)@我完全同意。嗯,但我喜欢发布正则表达式解决方案。我知道很多时候regex不是一个选项,但我喜欢用regex思考解决方案,这就像一个书呆子的爱好。问题是有时社区会发疯,谢谢!唯一的问题是这个正则表达式有很多组,这使得JavaScript.replace()
有点棘手。但它在模式匹配方面确实很好。@stekhn,正如您在替换部分中看到的,我将所有的组一起使用,并适用于所有情况。这非常棒,我想我将采用x/10000000方法;)@Fede这与使用正则表达式解析HTML大致相同。这是可能的,但有更好的方法;)@我完全同意。嗯,但我喜欢发布正则表达式解决方案。我知道很多时候regex不是一个选项,但我喜欢使用regex思考解决方案,这就像一个书呆子的爱好。问题是,有时社区会发疯,哈哈