Я бы сделал что-то вроде этого:
String.prototype.linkify = function () {
return this.replace(/((?:ht|f)tp:\/\/)?([^:\/\s]+\w+\.(?:com|net|org))/gi, function (_, protocol, rest) {
var url = (protocol || "http://") + rest
return '<a href="' + url + '">' + url + '</a>'
})
}
(Я исправил несколько других проблем с вашим кодом: вы пропустили return
и сопоставляли период имени домена, используя .
вместо \.
.)
И я предполагаю, что мне не нужно указывать, насколько плохо это будет соответствовать URL-адресам в целом, из-за ряда проблем с вашим шаблоном.