2011-05-10 160 views
17

有誰知道一個簡單的方法來更改JavaScript中的文件擴展名?如何用javascript更改文件擴展名

例如,我有一個「first.docx」的變量,但我需要將其更改爲「first.html」。

+0

這是作業還是什麼? – used2could 2011-05-10 16:31:00

+3

這不是作業...問題是我是全新的Javascript,所以我不習慣的東西:) 但我需要完成一個解析器網絡系統...它從doc,docx, pdf,rtf或txt html ... – JLuiz 2011-05-10 16:45:06

回答

34

這將改變包含文件名串;

file = file.substr(0, file.lastIndexOf(".")) + ".htm"; 
+0

完美!解決了我的問題! – JLuiz 2011-05-10 16:42:45

+4

請注意,如果您在尚未擁有擴展名的文件名上使用此選項,則會出現邊緣情況。 – hippietrail 2016-02-28 00:16:08

+0

如果我從不提供典型文件的網站下載,我將如何實現設置文件格式?它只是一個網址。即** https://r5---sn-uxa0n-t8gs.googlevideo.com/videoplayback?ipbits = 0&initcwndb ... D134213BA9465CB74DFD36CDE47BF.102638C4A9F3ACA357F79EE747DD5F49F1E0F0DE ** – Anthony 2017-07-26 02:59:09

-2
var file = "first.docx"; 
file = file.split("."); 
file = file[0]+".html"; 
+0

這似乎是一個相當複雜的解決方法。 – ChaosPandion 2011-05-10 16:34:44

+2

這並不複雜,拆分很容易理解,但它可能會做比您需要的更多的工作。但是這個解決方案沒有考慮文件名中的句點 – 2011-05-10 16:41:01

5
file = file.replace(/\.[^\.]+$/, '.html'); 
+0

問題是:我不知道輸入文件有哪個擴展 – JLuiz 2011-05-10 16:35:02

+0

@Mobster - 請參閱更新以獲得解決方法。 – ChaosPandion 2011-05-10 16:37:27

+0

如果該文件的名稱是「file.name.docx」,該怎麼辦? – JLuiz 2011-05-10 16:38:10

0

這可能不會得到很多upvotes,但我無法抗拒。

此代碼將處理文件可能沒有擴展名的邊緣情況(在這種情況下,它將添加它)。它使用"tilde trick"

function changeExt (fileName, newExt) { 
    var _tmp 
    return fileName.substr(0, ~(_tmp = fileName.lastIndexOf('.')) ? _tmp : fileName.length) + '.' + newExt 
}