我想要做的是创建一个用户脚本,将不同的GPS坐标转换为带到谷歌地图的超链接。
示例:
我有一个24.197611 N, 120.780512 E
页面作为文字。我希望能够点击它以打开另一个指向http://maps.google.com/maps?q=24.197611,120.780512
由于坐标在括号内( 14.495569 N,9.139927 E ),我使用了这样的东西:
$("div").html(function(i, html) {
return html.replace(/\((.+?)\)/g, "<a href='http://maps.google.com/maps?q=#$1'>$1</a>");
});
但链接也是大胆的部分。
答案 0 :(得分:0)
我建议您使用以下正则表达式匹配您使用的格式的坐标:
\((<b>)?(\d+\.\d+ [NEWS], \d+\.\d+) [NEWS](<\/b>)?\)
在这种情况下,您有三个捕获组。捕获组#2匹配Google Maps超链接使用格式的坐标。
以下是它如何处理您提供的代码:
$("div").html(function(i, html) {
return html.replace(/\((<b>)?(\d+\.\d+ [NEWS], \d+\.\d+) [NEWS](<\/b>)?\)/g, "<a href='http://maps.google.com/maps?q=#$2'>$2</a>");
});
答案 1 :(得分:0)
所以,最后我使用了类似这样的东西
function myFunction() {
$("div").each(function(i, html) {
var $this = $(this);
$this.html($this.html().replace(/((\d+\.\d+) [N], (\d+\.\d+) [E])/g, "<a href='http://maps.google.com/maps?q=$1' target='_blank'>$1</a>"));
});
}
$(document).ready(myFunction);
setTimeout(myFunction, 2000);
即使它似乎放慢了事情