Спасибо, за помощь сделал так:
var str='слово1, слово2 ,слово3 слово4 слово5, слово6 слово7,| слово8 слово9 слово10, слово11 |,слово12 , | слово13, слово14 слово15 |';
str = str.replace(/(,\s*$)|(\|*$)/, '');
str = str.replace(/(,\|+)|(\|,+)/g, '|');
str = str.replace(/\s*([,|])\s*/g,'$1').trim();
alert(str);
Код сократился, но если кто знает как сделать в ону строку, было бы вообще супер!