jquery正则表达式替换已知模式中的子字符串

时间:2011-04-08 00:49:46

标签: jquery regex

你能帮我解决一下如何在下面的img src中替换“666666& r =”和“& u”之间的任何内容吗?

img src="img.php?&w=300&b=a&n=666666&r=3m&u=domain.com" class="graph"

现有尝试

$("#changeimg").change(function() {

    $('.graph').each(function(index) {

       //var sub = t.replace(/^.*666666&r=(.*)&u=*$/, '1y'); ??

       $(this).attr("src", sub);

    });

});

4 个答案:

答案 0 :(得分:2)

这很好用:

var newString = oldString.replace(/([&?]r=)[^&]*/, '$11y');

它将替换r=参数,无论它是在查询字符串的开头还是在中间(如您发布的示例中)

答案 1 :(得分:1)

t.replace( /^(.*666666&r=)([^&]*)(&u=.*)/, "$11y$3" )

http://refiddle.com/10c

的示例和证明

答案 2 :(得分:0)

var sub = $(this).attr('src').replace(/&r=.*&/, '&r=1y&');

答案 3 :(得分:0)

谢谢大家的答案!!!

现在正在运作:

$("#changedate").change(function() {
    var sel = $("#changedate").val();
    $('img').each(function(index) {
        $(this).attr("src", $(this).attr('src').replace(/([&?]r=)[^&]*/, '$1' + sel));
    });
});