(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})
Will match the following cases
http://www.foufos.gr 
https://www.foufos.gr 
http://foufos.gr 
http://www.foufos.gr/kino 
http://werer.gr 
www.foufos.gr 
www.mp3.com 
www.t.co 
http://t.co 
http://www.t.co 
https://www.t.co 
www.aa.com 
http://aa.com 
http://www.aa.com 
https://www.aa.com 
Will NOT match the following
www.foufos 
www.foufos-.gr 
www.-foufos.gr 
foufos.gr 
http://www.foufos 
http://foufos 
www.mp3#.com 
var expression = /(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/gi;
var regex = new RegExp(expression);
var check = [
  'http://www.foufos.gr',
  'https://www.foufos.gr',
  'http://foufos.gr',
  'http://www.foufos.gr/kino',
  'http://werer.gr',
  'www.foufos.gr',
  'www.mp3.com',
  'www.t.co',
  'http://t.co',
  'http://www.t.co',
  'https://www.t.co',
  'www.aa.com',
  'http://aa.com',
  'http://www.aa.com',
  'https://www.aa.com',
  'www.foufos',
  'www.foufos-.gr',
  'www.-foufos.gr',
  'foufos.gr',
  'http://www.foufos',
  'http://foufos',
  'www.mp3#.com'
];
check.forEach(function(entry) {
  if (entry.match(regex)) {
    $("#output").append( "Success: " + entry + "
" );
  } else {
    $("#output").append( "Fail: " + entry + "
" );
  }
});
 
 
Check it in rubular - NEW version
Check it in rubular - old version