从图像链接剥离文件名

我有一个变量,它包含一个图像的相对链接。这个图像链接文件名可以有不同的长度。例如...

/v/vspfiles/assets/images/d-amazingamethyst.jpg
/v/vspfiles/assets/images/cdacarbon.jpg  
我想从这个变量中只提取没有.jpg扩展名且没有前面的路径的文件名。所以上面的第一个例子应该返回d-amazingamethyst JQuery的答案是首选,但直的JavaScript也可以。谢谢
已邀请:

kex

赞同来自:

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加入所有内容。

nquae

赞同来自:

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/

menim

赞同来自:

引用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

要回复问题请先登录注册