рони, хороший вариант. Но это первое, что приходит в голову :-) Не читаем, да и работает не быстро.
Придумал такой, но захардкоженная строка с 30 звездочками не очень нравится.
var str = 'Не путайте Яндекс.Деньги с Гоголь-Моголем';
str = str.replace(/[\wа-яёА-ЯЁ]+/g, function(word) {
return word.substring(0, 5) + '******************************'.substring(0, word.length - 5);
})
alert(str);