如果你願意使用JQuery,你可以考慮跳過所有的正則表達式,並用一組有效的擴展代替:
// store the file extensions (easy to maintain, if changesa are needed)
var aValidExtensions = ["htm", "html", "class", "js"];
// split the filename on "."
var aFileNameParts = file_name.split(".");
// if there are at least two pieces to the file name, continue the check
if (aFileNameParts.length > 1) {
// get the extension (i.e., the last "piece" of the file name)
var sExtension = aFileNameParts[aFileNameParts.length-1];
// if the extension is in the array, return true, if not, return false
return ($.inArray(sExtension, aValidExtensions) >= 0) ? true : false;
}
else {
return false; // invalid file name format (no file extension)
}
這裏的一大優勢就是易於維護。 。 。更改可接受的文件擴展名是對數組的快速更新(甚至是屬性或CMS更新,具體取決於奇特的事情:))。此外,regex
有一個過程密集的一點點的習慣,所以這應該是更有效的(雖然,我還沒有測試過這種特殊情況)。
Javascript?或者哪種語言? – xanatos
它可能會更容易有一個循環,並將文件的擴展名與列表中的每個擴展名進行比較。如果任何擴展名匹配,那麼你打破循環,並阻止文件進一步。 – Jerry
爲匹配受限制的文件類型創建一個正則表達式。如果它匹配DON「T do it。 –