Well, you could remove the RegExp. But whether that helps is anyone'sperformance is anyone's guess.
var d2p = function(s){
var one=[], two=[], a=s.split('-');
one.push(a.shift());
a.forEach(function(part){
one.push('(' + part);
two.push(')');
});
return one.join('') + two.join('');
};
If you don't mind having the result fully parenthesised, then you can do this:
var d2p = function(s){
return s.split('-').reduceRight(function(whole, part){
return '(' + part + whole + ')';
}, '');
};