Validar extensões de arquivos com javascript
Escrito por Wadson Gomes em 05/01/2009 |
Javascript
A função que desenvolvi tem com objetivo facilitar a vida de quem for validar extensões de arquivos com javascript antes de enviar ao servidor.
- Seu uso é fácil já que ela só retorna um valor, sendo este true ou false.
- Aceita varias extensões para um mesmo campo
- Pode ser aplicada a vários campos usando um array de uma TagName ou ClassName
- Usa uma expressão regular para validar a extensão
- Pode ser usada no onblur do campo
Codigo da função
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function LexExt(dom,ext){ var campo=dom.value; var exts=ext.split(','); if(ext.length>=1){ for(i=0;i<exts.length;i++){ var reg=new RegExp("."+exts[i]+"$"); if(campo.match(reg)==null){ if(i==exts.length-1){ return false; } }else{ return true; } } } } |
Chamando a função
O primeiro parâmetro é o campo que receberá a validação
O segundo parâmetro são as extensões (sem o ponto)
Ex: LexExt($(’my’),’jpg,gif,png,html,css,js’);
Exemplos práticos
// usando pelo id do campo LexExt(document.getElementById(‘my’),’doc,docx’); // usando atraves de um array var dom = document.getElementsByClassName(‘file’); for(var i=0;i<dom.length;i++){ LexExt(dom[i],’jpg,gif’); }
Entry Details
Publicado em 05/01/2009 às 07:01 em Javascript

muito legal, dei uma melhorada nela aqui:
function LexExt(dom,ext){
var campo=dom.value;
var exts=ext.split(’,');
for(i=0;i<exts.length;i++){
var reg=new RegExp(”.”+exts[i]+”$”);
if(campo.match(reg)!=null) return true;
}
return false;
}
Ops, dando uma olhada aqui, consegui resumir um pouco mais.
function LexExt(dom,ext){
var exts=ext.split(’,');
for(i=0;i<exts.length;i++)
if(dom.value.match(RegExp(”.”+exts[i]+”$”))!=null) return true;
return false;
}
Ah, as Regex… sempre fugi delas.
Algum dia ainda aprendo!
Abraço!
Ótima solução.