javascript - 正则表达式匹配来自 HTML 脚本的谷歌地图坐标
问题描述
我试图从嵌入谷歌地图的网站上抓取谷歌地图坐标(纬度,lng)
document.querySelector("script")
给我一个像这样的字符串中的javascript代码
"
var myCenter=new google.maps.LatLng(24.1759478919796,-32.45587603383785);
function initialize()
{
var mapProp = {
center:myCenter,
zoom:15,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
var marker=new google.maps.Marker({ position:myCenter, });
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
"
我想要一个正则表达式匹配:24.1759478919796,-32.45587603383785
解决方案
因为这两个数字是唯一以逗号或右括号结尾的数字:
let [lat, lng] = document.querySelector("script:not([src])").textContent
.match(/[.\d-]+(?=[,)])/g).map(Number);
console.log(lat, lng);
<script>
var google = { maps: { LatLng: String } };
var myCenter=new google.maps.LatLng(24.1759478919796,-32.45587603383785);
</script>
推荐阅读
- db2 - 带有两个字符分隔符的 unicode 中的 DB2 UnLOAD
- bash - 在由 launchd 启动的 bash 检查脚本上启动守护进程
- python - 在python中删除整个链表
- regex - (f)lexers 使用的规则模式
- apache - apache中基于远程ip映射反向代理
- python - 火花:无法分配请求的地址
- javascript - 为什么 Symfony UX (Dropzone) 包不包含 JS 脚本?
- python - numpy 将数组宽度调整为零
- mysql - 如何在laravel中为mysql执行外连接
- java - 堆外内存是 Java/JVM 标准吗?