JSFiddle - React, Tailwind, and code Playground
JavaScript
var regex = /\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'\"\\.,<>?\u00AB\u00BB\u201C\u201D\u2018\u2019]))/i;
/* var regex = /\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.])(?:[^\s()<>]+|\([^\s()<>]+\))+(?:\([^\s()<>]+\)|[^`!()\[\]{};:'".,<>?«»“”‘’\s]))/; */
/* var regex = /(?:<\w+.*?>|[^=!:'"\/]|^)((?:https?:\/\/|www\.)[-\w]+(?:\.[-\w]+)*(?::\d+)?(?:\/(?:(?:[~\w\+%-]|(?:[,.;@:][^\s$]))+)?)*(?:\?[\w\+%&=.;:-]+)?(?:\#[\w\-\.]*)?)(?:\p{P}|\s|<|$)/; */
/* var regex = /(?xi)\b((?:https?:\/\/|wwwd{0,3}[.]|[a-z0-9.-]+[.][a-z]{2,4}/)(?:[^s()<>]+|(([^s()<>]+|(([^s()<>]+)))*))+(?:(([^s()<>]+|(([^s()<>]+)))*)|[^s`!()[]{};:'".,<>?\u00AB\u00BB\u201C\u201D\u2018\u2019])); */
var array = [
"http://google.com",
"google.com",
"google.com/",
"google.com/dsf",
"google.com/q=234",
"google.com/q=deksuglaaiod.245jt0sa",
"www.google.com",
"google.",
"google",
"comgoogle",
"googlecom",
"images.google.com",
"http://www.google.com",
"http://www.google.com/anyquerystring"
];
var result = '';
var i = 0;
for (i = 0; i < array.length; i++) {
var url = array[i];
result = regex.test(url);
document.write('<span style="background:#' + (result == true ? '60da63' : 'ffee33') + '">isURL: ' + result + ' => ' + url + '</span><br>');
}