【问题标题】:Remove sections of url to only keep file name删除部分 url 只保留文件名
【发布时间】:2023-03-10 15:04:01
【问题描述】:

我想删除 URL 中的所有内容,只保留文件/图像的名称。 URL 是一个动态输入/变量。

代码:

var str = "http://website.com/sudir/sudir/subdir/Image_01.jpg";
str = str.replace("http://website.com/sudir/sudir/subdir/", "")
         .replace(/[^a-z\s]/gi, ' ').replace("_", " ")
         .replace("subdir", "").toLowerCase().slice(0,-4);

【问题讨论】:

    标签: javascript string url replace lowercase


    【解决方案1】:

    您始终可以使用正则表达式从字符串中提取数据: 从 URL 中提取数据的正则表达式:

    "http://website.com/sudir/sudir/subdir/(?<FileName>[0-9A-Za-z._]+)"
    

    【讨论】:

      【解决方案2】:

      我知道您尚未指定确切的 URL 格式以及在您的情况下这是否可行,但这可能是一个值得考虑的解决方案。

      Javascript

      var str = "http://website.com/sudir/sudir/subdir/Image_01.jpg?x=y#abc";
      console.log(str.split(/[?#]/)[0].split("/").slice(-1)[0]);
      
      str = "http://website.com/sudir/sudir/subdir/Image_01.jpg";
      console.log(str.split(/[?#]/)[0].split("/").slice(-1)[0]);
      

      开启jsfiddle

      【讨论】:

        【解决方案3】:

        来自How to catch the end filename only from a path with javascript?

        var filename = path.replace(/.*\//, '');
        

        来自Getting just the filename from a path with Javascript

        var fileNameIndex = yourstring.lastIndexOf("/") + 1;
        var filename = yourstring.substr(fileNameIndex);
        

        【讨论】:

          【解决方案4】:

          您可以使用lastIndexOf() 轻松做到这一点:

          var str = "http://website.com/sudir/sudir/subdir/Image_01.jpg";
          str.substring(str.lastIndexOf("/") + 1)
          //"Image_01.jpg"
          

          【讨论】:

            【解决方案5】:

            这个函数会给你文件名,

            function GetFilename(url)
            {
               if (url)
               {
                  var m = url.toString().match(/.*\/(.+?)\./);
                  if (m && m.length > 1)
                  {
                     return m[1];
                  }
               }
               return "";
            }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-04-08
              • 1970-01-01
              • 2018-12-15
              • 1970-01-01
              • 2012-03-10
              相关资源
              最近更新 更多