Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用正则表达式替换Jquery_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 使用正则表达式替换Jquery

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

我想用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.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'按预期工作