我有一个变量,它保存图像的相对链接。此图像链接文件名可以具有各种长度。例如......
/v/vspfiles/assets/images/d-amazingamethyst.jpg
/v/vspfiles/assets/images/cdacarbon.jpg
我想从这个变量中只提取没有.jpg扩展且没有前面路径的文件名。所以上面的第一个例子应该返回d-amazingamethyst
Jquery答案是首选,但直接javascript也可以。感谢
答案 0 :(得分:2)
返回“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);
首先我将字符串拆分为带有分隔符“/”的数组。这将最后一个元素作为文件名。我再次根据“。”将最后一个元素拆分为文件名。
答案 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