Решил задачу таким скриптом
alert(prRazd("5*3.48*(-1)*a*(b*(3+9*u))*ololo*0.5",'*'));
function prRazd(obj,c){ //парсит по знаку c, перепрыгивая скобки(т.к. в них тоже может быть этот знак)
arr = [];
for(var i=0, p=i;i<=obj.length;){
if(i==obj.length || obj.charAt(i)==c){ //если c
arr.push(obj.substr(p,i-p));
i++;
p=i;
}
else{
if(obj.charAt(i)=='(') i=parSk(obj,i)+1; //если выражение в скобках
else{ //если число или имя переменной
if(obj.indexOf(c,i)==-1) i = obj.length;
else i = obj.indexOf(c,i);
}
}
}
return arr;
}
function parSk(s,i) { //находит парную скобку, будет работать при условии, что скобки стоят правильно
var k1=0, k2=0, k;
switch(s.charAt(i)){
case '(':
k1++;
k=1;
break;
case ')':
k2++;
k=-1;
break;
}
do{
i+=k;
switch(s.charAt(i)){
case '(': k1++; break;
case ')': k2++; break;
}
}while(k1!=k2)
return i;
}