javascriptはファイルの拡張子の構想と実現を得ます.
1918 ワード
絶対パスがあるファイル名については、例えばD:\Program Files\Notepad+\Notepad+++と.exe
まず、転送反傾斜棒に問題がないように、正規表現を使って、\または\\を菗に置き換えることができます.
D:芫Program Files葃Notepad++芫Notepad++.exe
その後、「(((登録商標)」を区切り記号として、文字列を配列に分解して、次のような配列が得られます.
D: Program Files Notepad++ Notepad++.exe
配列の最後のファイル名を取得します.すなわち、拡張子付きのファイル名です.Notepad+.exe
「.」を区切り記号として、このサフィックス付きのファイル名を行列に分解して、次のような配列が得られます.
Notepad++ exe
そして配列の最後の部分を取ると、ファイルの拡張子名exeが得られます.
コードは以下の通りです.
この方法はWindowsの下でしか使えないと思いますが、Linuxで実行したらどうなりますか?
まず、転送反傾斜棒に問題がないように、正規表現を使って、\または\\を菗に置き換えることができます.
D:芫Program Files葃Notepad++芫Notepad++.exe
その後、「(((登録商標)」を区切り記号として、文字列を配列に分解して、次のような配列が得られます.
D: Program Files Notepad++ Notepad++.exe
配列の最後のファイル名を取得します.すなわち、拡張子付きのファイル名です.Notepad+.exe
「.」を区切り記号として、このサフィックス付きのファイル名を行列に分解して、次のような配列が得られます.
Notepad++ exe
そして配列の最後の部分を取ると、ファイルの拡張子名exeが得られます.
コードは以下の通りです.
//by MoreWindows (//www.jb51.net/qq)
function GetExtensionFileName(pathfilename)
{
var reg = /(\\+)/g;
var pfn = pathfilename.replace(reg, "#");
var arrpfn = pfn.split("#");
var fn = arrpfn[arrpfn.length - 1];
var arrfn = fn.split(".");
return arrfn[arrfn.length - 1];
}
//by MoreWindows (//www.jb51.net/qq)
function GetExtensionFileName(pathfilename)
{
var reg = /(\\+)/g;
var pfn = pathfilename.replace(reg, "#");
var arrpfn = pfn.split("#");
var fn = arrpfn[arrpfn.length - 1];
var arrfn = fn.split(".");
return arrfn[arrfn.length - 1];
}
テストコード:
function Test()
{
var filePath="D:\\Program Files\\Notepad++\\Notepad++.exe";
alert(GetExtensionFileName(filePath));
}
function Test()
{
var filePath="D:\\Program Files\\Notepad++\\Notepad++.exe";
alert(GetExtensionFileName(filePath));
}
Testボタンをクリックすると、内容がexeのダイアログが表示され、GetExtension FileNameが絶対パスのファイル名を正確に解析し、拡張子名を得ることができる.この方法はWindowsの下でしか使えないと思いますが、Linuxで実行したらどうなりますか?