Вы можете конвертировать код почти один на один:
text = text.replace(/@+([a-z0-9]+(\.?[-_a-z0-9]+)*){2,255}/g, "<a href='http://$0.".site::$domain_only."'/>$0</a>");
text = text.replace("='http://@", "='http://");
И вам нужно будет заменить site::$domain_only
на его значение, например ::
var domain_only = '…';
text = text.replace(/@+([a-z0-9]+(\.?[-_a-z0-9]+)*){2,255}/g, "<a href='http://$0."+domain_only+"'/>$0</a>");
text = text.replace("='http://@", "='http://");
Но я бы лучше использовал это регулярное выражение:
/@+((?:[a-z0-9]+(?:\.?[-_a-z0-9]+)*){2,255})/g
Тогда вы можете использовать матч первой группы напрямую, и вам не нужно удалять @
впоследствии:
var domain_only = '…';
text = text.replace(/@+((?:[a-z0-9]+(?:\.?[-_a-z0-9]+)*){2,255})/g, "<a href='http://$1."+domain_only+"'/>$1</a>");