Outra forma de resolver o mesmo problema, é usando o non-digit \D
que busca tudo o que não for um dígito, ou seja, o inverso do \d
.
Como o array só tem números, seria uma boa usar ele.
var arquivo = '100,200-150,200;20';
var exp = /\D/g;
var novoArquivo = arquivo.replace(exp, ';')
var arrArquivo = novoArquivo.split(';');
console.log(novoArquivo); // "100;200;150;200;20"
console.log(arrArquivo); // ["100", "200", "150", "200", "20"]