Я уже исправил это, добавив пробел до и после строки, и заменил все URL пробелами до и после:
msg = " " + msg + " ";
msg = msg.replace(/(\s)(((https?|ftp|file):\/\/|www.)[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])(\s)/gi, " <a target='_blank' href=\"" + websiteUrl + "/out.php?u=$2\"><font color='" + hyperlinkColor + "'>$2</font></a> ");
msg = StringUtil.trim(msg);
Это не заменяет все гиперссылки, потому что гиперссылка не имеет пробелов до и после URL.