(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;_x000D_
var regex = new RegExp(expression);_x000D_
_x000D_
var check = [_x000D_
'http://www.foufos.gr',_x000D_
'https://www.foufos.gr',_x000D_
'http://foufos.gr',_x000D_
'http://www.foufos.gr/kino',_x000D_
'http://werer.gr',_x000D_
'www.foufos.gr',_x000D_
'www.mp3.com',_x000D_
'www.t.co',_x000D_
'http://t.co',_x000D_
'http://www.t.co',_x000D_
'https://www.t.co',_x000D_
'www.aa.com',_x000D_
'http://aa.com',_x000D_
'http://www.aa.com',_x000D_
'https://www.aa.com',_x000D_
'www.foufos',_x000D_
'www.foufos-.gr',_x000D_
'www.-foufos.gr',_x000D_
'foufos.gr',_x000D_
'http://www.foufos',_x000D_
'http://foufos',_x000D_
'www.mp3#.com'_x000D_
];_x000D_
_x000D_
check.forEach(function(entry) {_x000D_
if (entry.match(regex)) {_x000D_
$("#output").append( "<div >Success: " + entry + "</div>" );_x000D_
} else {_x000D_
$("#output").append( "<div>Fail: " + entry + "</div>" );_x000D_
}_x000D_
});
_x000D_
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>_x000D_
<div id="output"></div>
_x000D_