JSFiddle - React, Tailwind, and code Playground

by Stefano Bertoli

HTML

<input id="test" type="file" name="test">
 <button onclick="alert(file_ok(document.getElementById('test').value));">Check file</button>

JavaScript

function contiene(listaNomi,nome)
{
   var flag=false;
 for (i=0; i<listaNomi.length; i++)
     {
     if (listaNomi[i]==nome) flag=true;
     }
    return flag;
}

function explode (delimiter, string, limit) {
  if ( arguments.length < 2 || typeof delimiter === 'undefined' || typeof string === 'undefined' ) return null;
  if ( delimiter === '' || delimiter === false || delimiter === null) return false;
  if ( typeof delimiter === 'function' || typeof delimiter === 'object' || typeof string === 'function' || typeof string === 'object'){
    return { 0: '' };
  }
  if ( delimiter === true ) delimiter = '1';
  delimiter += '';
  string += '';

  var s = string.split( delimiter );


  if ( typeof limit === 'undefined' ) return s;

  // Support for limit
  if ( limit === 0 ) limit = 1;

  // Positive limit
  if ( limit > 0 ){
    if ( limit >= s.length ) return s;
    return s.slice( 0, limit - 1 ).concat( [ s.slice( limit - 1 ).join( delimiter ) ] );
  }

  // Negative limit
  if ( -limit >= s.length ) return [];

  s.splice( s.length + limit );
  return s;
}

function file_ok(url)
{ 
var ok=false;
 allowedExt=new Array("gif","jpeg","jpg","png","GIF","JPEG","JPG","PNG");
				 var temp=explode(".",url);
				 last_index=temp.length-1;
				 var ext=temp[last_index];
				 if (contiene(allowedExt,ext)){ok=true;}
    return ok;
}