0

我想删除 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);
4

5 回答 5

1

这个函数会给你文件名,

function GetFilename(url)
{
   if (url)
   {
      var m = url.toString().match(/.*\/(.+?)\./);
      if (m && m.length > 1)
      {
         return m[1];
      }
   }
   return "";
}
于 2013-05-07T14:34:56.373 回答
1

您可以通过以下方式轻松做到这一点lastIndexOf()

var str = "http://website.com/sudir/sudir/subdir/Image_01.jpg";
str.substring(str.lastIndexOf("/") + 1)
//"Image_01.jpg"
于 2013-05-07T14:35:27.067 回答
0

如何仅从带有 javascript 的路径中捕获结束文件名?

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

使用 Javascript 从路径中获取文件名

var fileNameIndex = yourstring.lastIndexOf("/") + 1;
var filename = yourstring.substr(fileNameIndex);
于 2013-05-07T14:36:02.413 回答
0

我知道您尚未指定确切的 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 上

于 2013-05-07T14:43:24.290 回答
0

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

"http://website.com/sudir/sudir/subdir/(?<FileName>[0-9A-Za-z._]+)"
于 2013-05-07T14:53:05.777 回答