我在网络应用中使用自定义文件上传按钮。我希望用户看到他们选择了一个文件,所以我更改了div的html以显示文件名。
这是我的jquery:
$("input[type=file]").change(function() {
var filename = $("input[type=file]").val();
$("#share-file-name p").html(filename);
});
现在,除了输入值为:
这一事实外,这很有用C:\fakepath\photo.jpg
这就是用户看到的内容。我只是想让他们看到“photo.jpg”部分。如何使用我的jquery去除文件名以外的所有内容?
谢谢!
答案 0 :(得分:2)
这应该有效:
filename = filename.replace(/^.*[\/\\]/, "");
答案 1 :(得分:1)
你可以砍掉最右边的任何东西" /"
像这样:$("input[type=file]").change(function() {
var filename = $("input[type=file]").val();
// As pointed out in the comments, this line is required to make it
// Windows compliant. It's important to handle paths from any OS.
filename = filename.replace(/^.*[\\\/]/, '');
$("#share-file-name p").html(filename);
});
答案 2 :(得分:1)
如果您将完整文件路径存储在变量filename
中,则可以执行以下操作以仅获取文件名:
filename.substring(filename.lastIndexOf("\"))
正则表达式或split命令对于您正在尝试执行的操作而言过于苛刻。
答案 3 :(得分:0)
使用split("/");
,然后你得到一个数组,所有元素用/分隔,所以最后一个元素将是文件名
var file = filepath.split("/"); file[file.length - 1]
答案 4 :(得分:0)
您可以使用此正则表达式:
filnameToDisplay = /([^\\]+.\w+$)/.exec(filename)[0];
无论文件路径的长度或文件名中的字符是什么,这都会得到你想要的东西,除非他们使用的是我不知道的奇怪扩展名!