我有一个像这样的静态Google地图:
<img alt="Map" height="135" src="http://maps.google.com/maps/api/staticmap?scale=2&center=45.504358%2C-73.553712&language=en&zoom=15&markers=scale%3A2%7Cshadow%3Afalse%7Cicon%3Ahttp%3A%2F%2Fyelp-images.s3.amazonaws.com%2Fassets%2Fmap-markers%2Fannotation_64x86.png%7C45.504358%2C-73.553712&client=gme-yelp&sensor=false&size=286x135&signature=nM1FwS0L3z_VgK2ljaRcJf11HxA=" width="286">
如何才能获得变量中的部分
var lat = 45.504358;
var lng = -73.553712;
我试过了:
var mapSrc = $(pageDetails).find('[alt="Map"]').prop('src');
var card_Latitude = mapSrc.match(/center=(.*?)%2C-/i)[1];
答案 0 :(得分:1)
使用JS获取查询字符串参数的通用函数(请参阅此答案):
How can I get query string values in JavaScript?
所以它就像这样:
function getParameterByName(name, url) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(url);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
然后在你的特定情况下你就这样称呼它(假设你的img被命名为&#34; img&#34;):
var center = getParameterByName("center",document.getElementById("img").src).split(",");
alert("lat: " + center[0] + " long: " + center[1]);
看到这个小提琴:
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以使用基础javascript RegExp:
var matches = new RegExp('center=(\\d+\\.?\\d*)%2C(-?\\d+\\.?\\d*)').exec(mapSrc);
if (matches) {
var lat = matches[1];
var lng = matches[2];
}
答案 3 :(得分:0)
您可以按参数拆分src
,然后按每个参数的键/值对拆分,以便在src属性中找到latitude
和logitude
值。例如:
var mapSrc = $(pageDetails).find('[alt="Map"]').prop('src');
jQuery(mapSrc.split("&"), function(index, value) {
var keyPair = value.split("=");
if (keyPair[0] == "center") {
var lat = decodeURIComponent(keyPair[1]).split(",")[0];
var lng = decodeURIComponent(keyPair[1]).split(",")[1]
}
});
使用上面的内容,根本不需要正则表达式。但是,如果您仍希望使用regex
执行此任务,则可以使用以下模式:'center=([^%]+)%2C-([^&]+)'
答案 4 :(得分:0)