Como usar expressões regulares para inserir espaço em uma string de caso de camelo

Eu estou usando a seguinte expressão regular para inserir espaços em uma seqüência de caracteres de camelo

var regex = /([A-Z])([A-Z])([a-z])|([a-z])([A-Z])/g;

Exemplo de uso

var str = "CSVFilesAreCoolButTXTRules";
str = str.replace( regex, 'Exemplo de uso4 Isso funciona bem, mas eu também quero colocar espaços antes e depois de qualquer número na string, embora eu não queira espaço inserido entre os dígitos individuais, e se um número é precedido por um3$5' );
// "CSV Files Are Cool But TXT Rules"

Isso funciona bem, mas eu também quero colocar espaços antes e depois de qualquer número na string, embora eu não queira espaço inserido entre os dígitos individuais, e se um número é precedido por um$ então o espaço deve ir antes, e não o número.

Eu também quero remover todos os caracteres para além dos números, letras,$ assinar e um ponto. dentro de um número.

Por exemplo,

MRRPLowPriceUSD $ 10.10HighPriceUSD $ 1998.59595CommentsNoChangeReportedNTPL1001KSE-100INDEX

Deve se tornar

MRRP Preço Baixo USD $ 10.10 Preço Alto USD $ 1998.59595 Comentários Nenhuma Mudança Relatada NTPL 1001 KSE 100 INDEX

Note que o- foi removido.

Qualquer ajuda seria apreciada.

Relacionado:putting-space-in-camel-case-string-usando-expressão-regular.

questionAnswers(1)

yourAnswerToTheQuestion