Javascript 复杂正则表达式模式

Javascript 复杂正则表达式模式,javascript,regex,Javascript,Regex,至少对我来说是一个复杂的正则表达式。这是我的一个字符串: /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

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

/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

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


谢谢你的帮助

必须用正则表达式完成吗

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
出现。

必须使用regex完成吗

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
出现。

可能不需要使用正则表达式,但由于您要求

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

可能没有必要使用正则表达式,但既然您要求

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

您希望使用如下常规表达式:

src=([^&$]+)

以下是示例和示例。

您希望使用如下常规表达式:

src=([^&$]+)

以下是示例。

Eh,忘记添加分隔符了,src上的大小写错误。。。已编辑,现在应该可以了。一个人不能简单地写代码而不首先测试:(谢谢!这很好地工作了,忘记了添加分隔符,src上的大小写错误…编辑,现在应该可以了。一个人不能简单地写代码而不首先测试:(谢谢!这很好地工作了。)