javascript - 替换较大字符串的一小部分

标签 javascript jquery

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

所以,下面的代码不起作用。 .Replace 显然需要完全匹配,因此它会在“foo is good”句子中找到“foo”,但不会在“fooIsGood”中找到“foo”。

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

那么,什么才有效呢?

提前致谢!

最佳答案

.replace()工作正常,但您没有分配替换的值,它需要是:

addressSwitch = addressSwitch.replace("http://www.oldaddress.com/", "www.newaddress.com");

请记住.replace()不会更改原始字符串,它会返回一个替换了值的新字符串。

请记住.attr()还需要一个函数,因此您可以将代码简化为:

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

关于javascript - 替换较大字符串的一小部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4382407/

相关文章:

Javascript 函数没有返回值

javascript - 如何在 Razor 模型中获取列表中的特定项目

javascript - 如何转换 HH :mm:ss string to a JavaScript Date object?

javascript - 重定向到另一个页面后如何更新所选项目

javascript - 否定正则表达式模式的问题

javascript - 使用自定义函数作为另一个函数的参数

javascript - 我怎样才能强制溢出:scroll when using plugin for responsive-tables?

javascript - 保存 periodicalupdater 返回的值

iPhone 上的 jquery 移动网站

javascript - 在我了解 vanilla Javascript 之前,使用易于编写的 jQuery 是否有缺点?