2013-04-09 27 views
6

Tôi chỉ cần trả về tên tệp từ tệp nhập HTML.Chỉ lấy tên tệp từ đầu vào tệp trên internet explorer

<input type="file" id="whatever" /> 

Các mã JavaScript im sử dụng để có được tên của tập tin là:

document.getElementById("whatever").value; 

Trong firefox nó mang lại chỉ có tên tập tin đó là những gì tôi muốn, nhưng trong IE tôi nhận được đường dẫn đầy đủ .

Tôi nghĩ rằng thao tác chuỗi là cách duy nhất để lấy tên.

Cách dễ nhất/ngắn nhất để chỉ lấy tên (tiện ích mở rộng quá) trong JavaScript là gì? Cảm ơn.

Trả lời

17

Bạn có thể thử này

var path = document.getElementById("whatever").value; 
var fileName = path.match(/[^\/\\]+$/); 
console.log(fileName); 
+0

Tuyệt vời, tôi nghĩ nó không thể ngắn hơn thế. – user937450

+2

Tôi đang sử dụng 'path.match (/ [^ \/\\] * $ /) [0]'. 1 - Kết quả từ trận đấu không phải là một chuỗi ' 2 - Không có lỗi nếu' đường dẫn == '' '; –

2

Tôi hy vọng công trình này hoạt động.

var fullFileName = document.getElementById("whatever").value; 
var fileName = fullFileName.substr(fullFileName.lastIndexOf("\\")+1, fullFileName.length); 

Đây là fiddle cho rằng Fiddle

+0

Ill thử nó ở đây và cho bạn biết kết quả – user937450

+0

Có nó hoạt động, nhưng chỉ dành cho những thanh "\" – user937450

0
var path = document.getElementById("whatever").value; 
var filename = path.substring(path.lastIndexOf("/") + 1); 

này sẽ cung cấp cho bạn tất cả mọi thứ sau khi người cuối cùng /, nhưng cũng tương thích với một thiếu / s. Trong trường hợp bạn cũng cần phải đối phó với \ như con đường phân cách đáng yêu, bạn luôn có thể sử dụng đầu tiên này:

path.replace(/\\/g, "/") 
Các vấn đề liên quan