希望有一些帮助使用jquery替换字符串的一部分,所以这就是我所拥有的:
http://www.test.com/santa-cruz-island/?iframe=true&width=60%&height=70%
我想将所有内容从?iframe=
替换到最后:
到目前为止,我有这个:
jQuery('.islands_info_ggt').each(function() {
url = jQuery(this).attr('href');
_imgr = url.replace('iframe=', 'test');
jQuery(this).attr('href', _imgr)
});
结果: http://www.test.com/santa-cruz-island/?testtrue&width=60%&height=70%
这是我正在寻找的结果:http://www.test.com/santa-cruz-island/?test
答案 0 :(得分:7)
改为使用正则表达式替换:
_imgr = url.replace(/iframe=.*$/, 'test');
顺便说一句,你不必在jQuery中包装所有这些元素:这......
jQuery('.islands_info_ggt').each(function() {
this.href = this.href.replace(/iframe=.*$/, 'test');
});
我想,...会给你相同的结果。实际上,您可以使用更简洁的.attr(name, function)形式:
jQuery('.islands_info_ggt').attr('href', function(_, attr) {
return attr.replace(/iframe=.*$/, 'test');
});
答案 1 :(得分:4)
对于非正则表达式解决方案,您可以拆分&然后采取第一个元素
var url = "http://www.test.com/santa-cruz-island/?iframe=true&width=60%&height=70%";
var finalurl = url.split('iframe=')[0] + "test";
答案 2 :(得分:1)
目前只匹配'iframe =。'。所以你需要。*以便它匹配它之后的所有字符和$来表示结束。
url.replace('/iframe=.*$/', 'test');
答案 3 :(得分:1)
您可以使用indexOf
在字符串中查找"iframe="
的位置,在此之前只获取字符串的一部分,并在其后添加您想要的内容:
_imgr = url.substr(0, url.indexOf('iframe=')) + 'test';
答案 4 :(得分:0)
您可以使用正则表达式:
_imgr = url.replace(/iframe=.*$/, 'test');
答案 5 :(得分:0)
在代码中尽可能直接地执行您想要的操作。
这将产生最清晰,最易维护的代码。
在这种情况下,您希望将子字符串放到感兴趣的字符串的位置,并将字符串添加到其中。
url = url.substr(0,url.indexOf('iframe=')-1)+'test';
使用这样的API来完成你想要做的事情,这将使你的代码更加清晰,以便其他人试图阅读它。