2013-04-09 12 views
6

HTML入力ファイルからファイル名のみを返す必要があります。インターネットエクスプローラのファイル入力からファイル名のみを取得

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

ファイルの名前を取得するために使用してJavaScriptコードイムは次のとおりです。

Firefoxで
document.getElementById("whatever").value; 

それは私が欲しいものであるファイル名のみを与えるが、IEで、私は完全なパスを取得。

私は文字列操作が名前を取得する唯一の方法だと思います。

JavaScriptで名前(拡張子も)を取得する最も簡単な方法は何ですか?ありがとう。

答えて

17

ためのフィドルあるこの

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

パーフェクト、私はそれよりも短くすることはできないと思います。 – user937450

+2

私は 'path.match(/ [^ \/\\] * $ /)[0]'を使っています。 1 - 一致の結果は 'string'ではありません 2 - ' path == '' '; –

2

これがうまくいきたいです。ここで

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

はあなたが試すことができ、その Fiddle

+0

病気は、ここでそれを試してみて、はい、それは働くあなたの結果 – user937450

+0

を伝えます – user937450

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

これが最後の/後にあなたにすべてを与えるが、またの欠如と互換性があります/秒。ケースであなたも素敵なパスのセパレータとして\に対処する必要がある、あなたは常に最初にこれを使用することができます:「\」だけそれらのバーの、

path.replace(/\\/g, "/") 
関連する問題