在jQuery中查找两个字符串之间的字符串

在jQuery中查找两个字符串之间的字符串,jquery,regex,Jquery,Regex,我有一个静态谷歌地图,如下所示: <img alt="Map" height="135" src="http://maps.google.com/maps/api/staticmap?scale=2&amp;center=45.504358%2C-73.553712&amp;language=en&amp;zoom=15&amp;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&amp;center=45.504358%2C-73.553712&amp;language=en&amp;zoom=15&amp;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&amp;client=gme-yelp&amp;sensor=false&amp;size=286x135&amp;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&amp;center=45.504358%2C-73.553712&amp;language=en&amp;zoom=15&amp;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&amp;client=gme-yelp&amp;sensor=false&amp;size=286x135&amp;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+]+)