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