На мой взгляд, Regex недостаточно для того, чтобы сделать что-то настолько сложное, как это. Лучшее, что я мог сделать с регулярным выражением, это:
[\r\n]function [\w ]*\(\)\{[\w\W]*?}
Это удалит все функции в вашем примере, но если бы у вас было что-то подобное, это не сработало бы:
function foobar (){
if(condition){
// do something
} // this end brace would be mis-interpreted as the end of the function
// bla, bla, bla
}
Вы бы все равно имели:
// bla, bla, bla
}
Ответ Пессимиста будет работать, но ТОЛЬКО если все функции не имеют пробелов перед закрывающей строкой, что вряд ли будет правдой.
Суть в том, что вам действительно нужен настоящий парсер JavaScript. Быстрый поиск в Google нашел это:
http://www.antlr.org/