Передайте функцию в качестве второго аргумента в replace
:
str = str.replace(/(\$)([a-z]+)/gi, myReplace);
function myReplace(str, group1, group2) {
return "+" + group2 + "+";
}
Эта возможность существует со времен Javascript 1.3, согласно mozilla.org .