В replace вторым параметром вы подставляете не функцию, а то что она возвращает, вам же нужно передать именно саму функцию, а не её результат, т.е.
':111:{222}'.replace(/\:(.*?)\:\{(.*?)\}/g, func);
http://javascript.ru/basic/regular-e...herez-funkciyu