Javascript 使用正则表达式替换Jquery
我想用c.jpg替换以a.jpg和b.jpg结尾的图像 我的代码如下:Javascript 使用正则表达式替换Jquery,javascript,jquery,regex,Javascript,Jquery,Regex,我想用c.jpg替换以a.jpg和b.jpg结尾的图像 我的代码如下: $(".test").each(function() { var src = $(this).attr("src"){ if(src.match(/a.jpg$/)){ src.replace("a.jpg", "c.jpg"); } else if (src.match(/b.jpg$/)){ src.replace("b.jpg", "c.j
$(".test").each(function() {
var src = $(this).attr("src"){
if(src.match(/a.jpg$/)){
src.replace("a.jpg", "c.jpg");
} else if (src.match(/b.jpg$/)){
src.replace("b.jpg", "c.jpg");
}
$(this).attr("src", src);
});
但这很复杂。。如何使用regex执行此操作?您不需要检查模式是否匹配,只需执行替换:
$(".test").each(function() {
$(this).attr("src", $(this).attr('src').replace(/[ab]\.jpg$/, "c.jpg");
});
您不需要检查模式是否匹配,只需执行替换:
$(".test").each(function() {
$(this).attr("src", $(this).attr('src').replace(/[ab]\.jpg$/, "c.jpg");
});
因为您只替换src属性的结尾,并且包含了扩展名,所以可以肯定地说a | b.jpg子字符串只会出现一次。 换言之,$this.attr'src'。替换'a.jpg','c.jpg'。替换'b.jpg','c.jpg'将与Tatu的答案完全相同,没有正则表达式
请,请,请阅读本文的任何人:在操作字符串时,默认情况下不要使用正则表达式,请三思。大约85%的与正则表达式相关的问题都是这样的,在大多数情况下,一个替代的、更少正则表达式且更好的解决方案是可能的。因为您只替换src属性的结尾,并且包含了扩展,所以可以肯定地说a | b.jpg子字符串只会出现一次。 换言之,$this.attr'src'。替换'a.jpg','c.jpg'。替换'b.jpg','c.jpg'将与Tatu的答案完全相同,没有正则表达式 请,请,请阅读本文的任何人:在操作字符串时,默认情况下不要使用正则表达式,请三思。大约85%的与正则表达式相关的问题都是这样的,在大多数情况下,一个替代的、更少正则表达式的、更好的解决方案是可能的。True,简单的解决方法:$this.attr'src'.substr0,$this.attr'src'.length-5+$this.attr'src'.substr-5.替换。。。在控制台substr0中的etc,test.length-5+test.substr-5.替换'a.jpg','c.jpg'。替换'b.jpg','c.jpg'工作正常,容易修复:$this.attr'src'。substr0,$this.attr'src'。length-5+$this.attr'src'。替换。。。控制台substr0中的etc,test.length-5+test.substr-5。替换'a.jpg','c.jpg'。替换'b.jpg','c.jpg'按预期工作