从图像链接剥离文件名

时间:2010-10-02 00:27:18

标签: javascript jquery

我有一个变量,它保存图像的相对链接。此图像链接文件名可以具有各种长度。例如......

/v/vspfiles/assets/images/d-amazingamethyst.jpg
/v/vspfiles/assets/images/cdacarbon.jpg  

我想从这个变量中只提取没有.jpg扩展且没有前面路径的文件名。所以上面的第一个例子应该返回d-amazingamethyst

Jquery答案是首选,但直接javascript也可以。感谢

3 个答案:

答案 0 :(得分:2)

Methods on jsFiddle

返回“file-only.my”

var x = "/v/whatever/file-only.my.jpg";
x = x.substring(x.lastIndexOf("/")+1, x.lastIndexOf("."));

它将获取子字符串,从最后/的索引加上1(文件名的开始)到.的最后一个索引,从而切断扩展名。

您也可以使用split功能。

var x = "/v/whatever/file-only.my.jpg";
x = x.split("/");
x = x[x.length-1].split('.');
x.pop();
x.join(".");

但是你需要在文件名上处理. s,如果你用索引0剪切它会得到错误的文件名。

我使用.pop删除数组中的最后一个元素,这将是文件扩展名,然后我用. s加入所有内容。

答案 1 :(得分:1)

var v = "/v/vspfiles/assets/images/d-amazingamethyst.jpg";

var s = v.split("/");

var filename = s[s.length-1].split('.')[0];

alert(filename);

首先我将字符串拆分为带有分隔符“/”的数组。这将最后一个元素作为文件名。我再次根据“。”将最后一个元素拆分为文件名。

这是小提琴。 http://www.jsfiddle.net/RFgRN/

答案 2 :(得分:1)

引用Regular expression field validation in jQuery使用Hugoware答案的变体。

var phrase = "/v/vspfiles/assets/images/d-amazingamethyst.jpg";
var reg = new RegExp("\/\S+\/",i);
phrase = phrase.replace(reg, "");
alert(phrase);

还有其他方法,而不是使用正则表达式,但令人惊讶的是正则表达式有多么有用。在你的武器库中始终是一项很好的技能。我总是使用在线验证工具验证我的正则表达式。例如:http://www.regular-expressions.info/javascriptexample.html