使用jQuery更改图像后缀

使用jQuery更改图像后缀,jquery,Jquery,我想更改所有具有类“thumb”的图像的图像后缀。它们可以是jpg、png或gif格式 <img class="thumb" src="http://someting.com/images/abc-150X150.jpg"/> 要删除-150X150 <img class="thumb" src="http://someting.com/images/abc.jpg"/> 我知道了,但它删除了扩展并使用img标记而不是类。感谢您关注我的问题。一种可能的方法:

我想更改所有具有类“thumb”的图像的图像后缀。它们可以是jpg、png或gif格式

<img class="thumb" src="http://someting.com/images/abc-150X150.jpg"/>

要删除-150X150

<img class="thumb" src="http://someting.com/images/abc.jpg"/>

我知道了,但它删除了扩展并使用img标记而不是类。感谢您关注我的问题。

一种可能的方法:

$('img.thumb').each(function() {
  this.src = this.src.replace('-150X150', '');
});
一种可能的办法:

$('img.thumb').each(function() {
  this.src = this.src.replace('-150X150', '');
});
一种可能的办法:

$('img.thumb').each(function() {
  this.src = this.src.replace('-150X150', '');
});
一种可能的办法:

$('img.thumb').each(function() {
  this.src = this.src.replace('-150X150', '');
});

这将使用正则表达式替换和匹配连字符、后跟数字、X和另一个数字的模式

$('.thumb').attr('src', function (index, src) { 
    return src.replace(/-\d+x\d+/, ''); 
});
值得注意的是,这只是简单的正则表达式。如果您想变得更复杂,那么可以在x两侧指定最小数量的整数,以减少匹配错误的内容,例如:

/-\d{3,}x\d{3,}/


上述内容将与x两侧的3个或更多数字相匹配。这将使用正则表达式替换与连字符相匹配的模式,后跟一个数字,然后是一个x和另一个数字

$('.thumb').attr('src', function (index, src) { 
    return src.replace(/-\d+x\d+/, ''); 
});
值得注意的是,这只是简单的正则表达式。如果您想变得更复杂,那么可以在x两侧指定最小数量的整数,以减少匹配错误的内容,例如:

/-\d{3,}x\d{3,}/


上述内容将与x两侧的3个或更多数字相匹配。这将使用正则表达式替换与连字符相匹配的模式,后跟一个数字,然后是一个x和另一个数字

$('.thumb').attr('src', function (index, src) { 
    return src.replace(/-\d+x\d+/, ''); 
});
值得注意的是,这只是简单的正则表达式。如果您想变得更复杂,那么可以在x两侧指定最小数量的整数,以减少匹配错误的内容,例如:

/-\d{3,}x\d{3,}/


上述内容将与x两侧的3个或更多数字相匹配。这将使用正则表达式替换与连字符相匹配的模式,后跟一个数字,然后是一个x和另一个数字

$('.thumb').attr('src', function (index, src) { 
    return src.replace(/-\d+x\d+/, ''); 
});
值得注意的是,这只是简单的正则表达式。如果您想变得更复杂,那么可以在x两侧指定最小数量的整数,以减少匹配错误的内容,例如:

/-\d{3,}x\d{3,}/



以上内容将匹配x

两侧的3个或更多数字,我建议使用
attr()
的回调,而不是两次调用它:
attr('src',function(index,oldSRC){return oldSRC.replace(/*regex*/,'';)
(或者改用
prop()
,但这是个人喜好)。正则表达式适用于varring后缀。它不起作用。这是因为您在问题中使用了大写的X(因此我在正则表达式中添加了大写的X),但在小提琴中使用了小写的X。我改变了答案,拉小提琴哦,是的。我的错。谢谢。:)我在答案中添加了更多关于匹配@raina77ow评论中提到的错误内容的可能性的信息。我建议使用
attr()
的回调,而不是两次调用它:
attr('src',function(index,oldSRC){return oldSRC.replace(/*regex*/,'';})
(或者改用
prop()
,但这是个人喜好)。正则表达式适用于varring后缀。它不起作用。这是因为您在问题中使用了大写的X(因此我在正则表达式中添加了大写的X),但在小提琴中使用了小写的X。我改变了答案,拉小提琴哦,是的。我的错。谢谢。:)我在答案中添加了更多关于匹配@raina77ow评论中提到的错误内容的可能性的信息。我建议使用
attr()
的回调,而不是两次调用它:
attr('src',function(index,oldSRC){return oldSRC.replace(/*regex*/,'';})
(或者改用
prop()
,但这是个人喜好)。正则表达式适用于varring后缀。它不起作用。这是因为您在问题中使用了大写的X(因此我在正则表达式中添加了大写的X),但在小提琴中使用了小写的X。我改变了答案,拉小提琴哦,是的。我的错。谢谢。:)我在答案中添加了更多关于匹配@raina77ow评论中提到的错误内容的可能性的信息。我建议使用
attr()
的回调,而不是两次调用它:
attr('src',function(index,oldSRC){return oldSRC.replace(/*regex*/,'';})
(或者改用
prop()
,但这是个人喜好)。正则表达式适用于varring后缀。它不起作用。这是因为您在问题中使用了大写的X(因此我在正则表达式中添加了大写的X),但在小提琴中使用了小写的X。我改变了答案,拉小提琴哦,是的。我的错。谢谢。:)我在答案中添加了更多关于匹配@raina77ow的评论中提到的错误内容的可能性的信息。我测试了它是否有效。投了赞成票,不知道是谁投了反对票。我在想@carl markham和你的答案。我认为使用正则表达式会慢一些,因为它会在替换之前进行检查。当后缀在所有图像中都相同时,我应该使用您的方法。是吗?嗯,我认为速度上的差异真的不值得一谈。然而,有了字符串替换,您的目标是明确的——只有这一行“-150X150”,没有更多。用正则表达式,不是这样的:考虑一下什么是发生在代码> > PICHOF4X4CAR-150 X150。JPG’< /代码>。如果它总是是150 x150,那么这是最好的答案。如果它有时会发生变化,那么您需要对它进行regexI测试。投了赞成票,不知道是谁投了反对票。我在想@carl markham和你的答案。我认为使用正则表达式会慢一些,因为它会在替换之前进行检查。当后缀在所有图像中都相同时,我应该使用您的方法。是吗?嗯,我认为速度上的差异真的不值得一谈。然而,有一点是,用stringreplace,您的目标是明确的——它只是这个“-1”