【问题标题】:Replace filename using JavaScript?使用 JavaScript 替换文件名?
【发布时间】:2011-03-17 02:05:05
【问题描述】:

有人可以告诉我如何在 JavaScript 中执行以下操作吗?我知道如何获取图像的 src,我只是希望能够用新的东西替换文件名。

/image/any/path/ANY-TEXT_HERE.png

/image/any/path/NEWTEXT.png

【问题讨论】:

    标签: javascript regex replace


    【解决方案1】:

    不区分大小写的版本:

    path = path.replace(/(.*)\/.*(\.png$)/i, '$1/NEWTEXT$2')
    

    删除 / 后的 i 使其区分大小写。

    【讨论】:

    • @ridge,我的理解是路径是固定的。我认为源字符串中唯一不同的部分是“ANY-TEXT_HERE”。
    • 没错。总会有一个形象。诀窍是能够定义一个新的文件名。
    • +1 .. 你可以编辑正则表达式,使其可以处理不敏感的情况('png'、'Png'、'PNG')吗?
    【解决方案2】:

    另一种选择:

    var filename = "/image/any/path/NEWTEXT.png";
    var splitFilename = filename.split("/");
    var newPath = splitFilename.slice(0, splitFilename.length - 1).join("/")
    if (newPath.length !== 0) {
        newPath += "/"
    }
    newPath += newFilename;
    

    【讨论】:

      【解决方案3】:

      到目前为止,所有其他解决方案都假设实际上存在 IS 路径。它们仅在至少有一个正斜杠时才起作用。这个经过测试的函数适用于所有情况,包括空路径:

      function rename_img_file(text, newname)
      { // Rename file in a IMG src (no query or fragment)
          var re = /^(.*\/)?[^\/]+\.(png|gif|jpe?g)$/i;
          var rep_str = '$1' + newname + '.$2';
          text = text.replace(re, rep_str);
          return text;
      }
      

      【讨论】:

      • 根本不起作用。将其编辑为 var rep_str = '$1NEWTEXT.$2';
      【解决方案4】:
      var url = "/image/any/path/ANY-TEXT_HERE.png";
      var mystring = "NEWTEXT";
      var ind1 = url .lastIndexOf('/');
      var ind2 = url .lastIndexOf('.');
      
      var new_url = url.substring(0,ind1+1 )+ mystring + url.substring(ind2 );
      alert(new_url ); 
      

      【讨论】:

      • 目前最快的一个,但当文件名中包含多个点时失败。
      • 如果不指定可能的输入字符串域,则无法绘制任何具体内容。
      • 将:ind2 = url .indexOf('.'); 更改为:ind2 = url .lastIndexOf('.'); 修复了点问题。
      【解决方案5】:

      javascript 它确实对文件有限制。 我假设您想在服务器上执行此操作。如果是这样,您应该使用服务器端脚本,而不是客户端。 也许你在谈论一个 ajax 脚本 如果您能进一步解释一下,也许我可以帮助您

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多