使用jquery替换字符串的一部分

时间:2013-10-30 17:53:13

标签: jquery regex

希望有一些帮助使用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

6 个答案:

答案 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";

结果 - http://www.test.com/santa-cruz-island/?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来完成你想要做的事情,这将使你的代码更加清晰,以便其他人试图阅读它。