【问题标题】:Jquery change string in img src between forward slashesJquery在正斜杠之间更改img src中的字符串
【发布时间】:2014-09-09 11:48:45
【问题描述】:

我需要在单击按钮时获取 img src,并且只需将第一个和第二个正斜杠之间的值从“galleryhomelarge”更改为“testtext”。

js小提琴链接:quick setup of my scenario

jQuery 代码:`$(function () { 变种图像=“”; var imageSrc = ""; var imageCaption = ""; var newImageCon = ""; var newImageSrc = "";

$('#button').click(function () {
    image = $('#demoimg');
    imageSrc = image.attr('src');
    imageCaption = image.attr('alt');
    newImageCon = $('#newimg-con');
    newImageCon.html("Old Image Source: " + imageSrc + "<br />Image Caption: " + imageCaption + "<br />New Image Source: " + newImageSrc);
});

}); ` 谢谢,

伊恩

【问题讨论】:

    标签: jquery replace onclick substring substr


    【解决方案1】:

    我想你想要这个:

    $('img').each(
    function(){
        var src = $(this).attr('src');
        if (src.indexOf('/') === 0){
            this.src = src.replace('/','');
        }
    });
    

    【讨论】:

    • 这在第一个正斜杠处停止并仅替换它。它有帮助,但一直希望从这一点到下一个正斜杠替换字符串。
    【解决方案2】:

    newImageSrc = imageSrc.replace(/(.*?)\/(.*?)\/(.*?)/, '$1/testtext/$3');

    【讨论】:

    • 干得不错!谢谢!我发现很难理解 javascript 行中的正反斜杠模式和点星号问号的含义.. 以及 $1 和 $3
    • 这叫反向引用,查看stackoverflow.com/questions/3235763/… 第一个和最后一个正斜杠是正则表达式的开始和结束,中间的需要用反斜杠转义才能使它工作。括号告诉正则表达式捕获这些字符串。反向引用($1 等)通过索引引用捕获的组。
    【解决方案3】:

    你可以这样做:

    var src = $("img").attr("src");
    src.replace("/galleryhomelarge/", "/testtext/");
    $("img").attr("src", src);
    

    我想您的图片链接是一致的,并且您在第一个和第二个斜线之间以外的位置有 galleryhomelarge 的可能性不大。

    【讨论】:

    • 哇,这很简单!甚至更具语义高度可理解性。我认为 Greg 使用正反斜杠来转义存在的任何符号或空格。是的,您是对的,链接将始终保持一致,我可以安全地使用您的代码
    • 目录名变了怎么办?您将不得不返回并更改此来源以适合。我认为正则表达式是在这种情况下要走的路。
    猜你喜欢
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    • 2015-03-22
    • 2018-02-27
    • 2017-05-01
    • 1970-01-01
    相关资源
    最近更新 更多