[5] Comentário enviado por
thadeudepaula em 05/08/2010 - 00:18h:
Erro de lógica: você fez o length no "for" sobre a variável "arquivo" em vez de em "extensoes". Sempre vai funcionar por que o nome do arquivo, com a extensão, sempre precisa ser maior que 3 caracteres. Mas se seu array de extensões fosse maior teria um grande problema... ;)
Poderia ser mais maleável e também utilizar expressão regular:
// @param file - nome do arquivo
// @param types - array contendo todas as possíveis extensões
// @return - boleano TRUE ou FALSE
function validoFormato(file,types) {
// Se "types" for string, transforma em array
var types = typeof(types) == "string" ? [types] : types,
fileExtension = file.replace(/.*\.([^.]+)$/,"$1").toLowerCase(); // Pega extensão com RegExp
for (var e in types) if (types[e].toLowerCase() == fileExtension) return true;
return false;
}
Exemplos de uso:
// Retorna false
validoFormato("documento.pdf","txt");
// Retorna true
validoFormato("documento.txt","txt");
// Retorna false
validoFormato("documento.pdf",["txt","odt","sxw"]);
// Retorna true
validoFormato("documento.odt",["txt","odt","sxw"]);