Если вы просто хотите первую ссылку в строке, вы можете просто использовать match.Кроме того, вы хотите использовать не жадное совпадение:
str.match(/mailto:([^ ]*?( |$|\n))|http:\/\/([^\/]*?)( |$|\n)/)
Вы можете добавить дополнительную проверку на действительные адреса электронной почты и т. Д., Если хотите.
Как только вы получилистроку, вы можете использовать auto_link, чтобы сделать ссылку из нее.