Javascript 替换较大字符串中的一小块

Javascript 替换较大字符串中的一小块,javascript,jquery,Javascript,Jquery,因此,我编写了以下代码来遍历每个锚点,获取它的href,如果它包含旧地址,尝试用新地址替换旧地址。虽然很明显,在这个站点使用代码之前很久就存在一个问题,但我需要一个快速而肮脏的解决方案来解决这个问题,所以这段代码就是我想要的 因此,下面的代码不起作用。Replace显然需要一个完整的匹配,所以它会在“foo是好的”一句中找到“foo”,但在“fooIsGood”一句中找不到“foo” 那么,什么才有效呢 提前谢谢 工作正常,但您没有指定替换的值,它需要: addressSwitch = addr

因此,我编写了以下代码来遍历每个锚点,获取它的href,如果它包含旧地址,尝试用新地址替换旧地址。虽然很明显,在这个站点使用代码之前很久就存在一个问题,但我需要一个快速而肮脏的解决方案来解决这个问题,所以这段代码就是我想要的

因此,下面的代码不起作用。Replace显然需要一个完整的匹配,所以它会在“foo是好的”一句中找到“foo”,但在“fooIsGood”一句中找不到“foo”

那么,什么才有效呢

提前谢谢

工作正常,但您没有指定替换的值,它需要:

addressSwitch = addressSwitch.replace("http://www.oldaddress.com/", "www.newaddress.com");
请记住,它不会更改原始字符串,而是返回一个新字符串,并替换其值

请记住,这也需要一个函数,因此您可以将代码精简为:

$('a[href^="http://www.oldaddress.com"]').attr("href", function(i, href) {
    return href.replace("http://www.oldaddress.com/", "www.newaddress.com");
});

为了比较,将它们都切换为小写,然后使用newvalue+newvalue长度的子字符串并向前。e、 g

$('a').each(function() {
    var replacer = "http://www.oldaddress.com";
    var addressSwitch = $(this).attr("href");
    if  (addressSwitch){
        var test = addressSwitch.toLowerCase().indexOf(replacer);
        if ( test == 0){
            addressSwitch = replacer + addressSwitch.subString(replacer.length);
            $(this).attr("href" , addressSwitch);
            }
        }
});

你是一台机器。我拒绝相信你是人。xD@Jacob-CraverBot v1.33.6(尚未完善)正忙着,我可以留言吗?@CraverBot-当然可以,问Nick他是否可以帮你关机-他的机器人正在窃取我所有的代表!;-)嗯…
replace()
应该正确匹配。你需要一个正则表达式模式来填充它,给我几分钟,我会发布..一些逻辑你是在寻找除了你给出的代码之外的其他字符串替换…还是就在上面??
$('a').each(function() {
    var replacer = "http://www.oldaddress.com";
    var addressSwitch = $(this).attr("href");
    if  (addressSwitch){
        var test = addressSwitch.toLowerCase().indexOf(replacer);
        if ( test == 0){
            addressSwitch = replacer + addressSwitch.subString(replacer.length);
            $(this).attr("href" , addressSwitch);
            }
        }
});