0

至少对我来说是一个复杂的正则表达式。这是我有的字符串:

/wp-content/themes/modern2/timthumb.php?src=http://www.cnn.com/storyimages/4C59D569-7749-F32B.jpg&h=442&w=642&zc=1&s=2

我想要做的是将该字符串中包含的 url 更改为我选择的另一个 url,即。

http://www.cnn.com/storyimages/4C59D569-7749-F32B.jpg

http://upload.wikimedia.org/wikipedia/commons/2/20/Google-Logo.svg

我不知道如何正则表达式匹配/替换 src= 和 &h= 之间的数据

谢谢你的帮助!

4

3 回答 3

2

必须用正则表达式完成吗?

function replaceURL(sourceURL, newPart) {
    var beforeSrc = sourceURL.split('?src=')[0];
    var afterH = sourceURL.split('&h=')[1];

    return beforeSrc + '?src=' + newPart + '&h=' + afterH;
}

然后打电话

replaceURL(
    '/wp-content/themes/modern2/timthumb.php?src=http://www.cnn.com/storyimages/4C59D569-7749-F32B.jpg&h=442&w=642&zc=1&s=2',
    'http://upload.wikimedia.org/wikipedia/commons/2/20/Google-Logo.svg'
);

请注意,这是有效的,因为在有效的 URL 中,?src子字符串不能比您期望的位置更早出现,也不能更&h晚出现。

于 2012-05-12T00:46:26.507 回答
2

可能没有必要使用正则表达式,但既然你问了......

var str = '/wp-content/themes/modern2/timthumb.php?src=http://www.cnn.com/storyimages/4C59D569-7749-F32B.jpg&h=442&w=642&zc=1&s=2'
var url = 'http://upload.wikimedia.org/wikipedia/commons/2/20/Google-Logo.svg'
str = str.replace(/src=(.*?)&/, 'src=' + url +'&')

输出:

/wp-content/themes/modern2/timthumb.php?src=http://upload.wikimedia.org/wikipedia/commons/2/20/Google-Logo.svg&h=442&w=642&zc=1&s=2
于 2012-05-12T00:47:17.613 回答
0

您想像这样使用正则表达式:

src=([^&$]+)

这是正则表达式代码示例。

于 2012-05-12T00:53:58.390 回答