在jQuery中查找两个字符串之间的字符串
我有一个静态谷歌地图,如下所示:在jQuery中查找两个字符串之间的字符串,jquery,regex,Jquery,Regex,我有一个静态谷歌地图,如下所示: <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-ima
<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">
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, " "));
}
我试过:
var mapSrc = $(pageDetails).find('[alt="Map"]').prop('src');
var card_Latitude = mapSrc.match(/center=(.*?)%2C-/i)[1];
试试这个。看演示
有一个通用函数,用于使用JS获取查询字符串参数(参见此答案): 就是这样,
<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">
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名为“img”):
看这把小提琴:
您可以使用基本javascript正则表达式:
var matches = new RegExp('center=(\\d+\\.?\\d*)%2C(-?\\d+\\.?\\d*)').exec(mapSrc);
if (matches) {
var lat = matches[1];
var lng = matches[2];
}
您可以按参数拆分
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-([^&]+)”
还有一个解决方案:
;center=( [.\d]+)%?[0-9A-Z]+([-.\d+]+)
演示我如何更改代码以包含您的想法?当我更换它时,它不工作。
;center=( [.\d]+)%?[0-9A-Z]+([-.\d+]+)