Cómo usar expresiones regulares para insertar espacio en una cadena de caja de camello

Estoy usando la siguiente expresión regular para insertar espacios en una cadena de camel-case

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

Ejemplo de uso

var str = "CSVFilesAreCoolButTXTRules";
str = str.replace( regex, 'Ejemplo de uso4 Esto funciona bien, pero también quiero poner espacios antes y después de cualquier número en la cadena, aunque no quiero que se inserte espacio entre dígitos individuales, y si un número va precedido por un3$5' );
// "CSV Files Are Cool But TXT Rules"

Esto funciona bien, pero también quiero poner espacios antes y después de cualquier número en la cadena, aunque no quiero que se inserte espacio entre dígitos individuales, y si un número va precedido por un$ entonces el espacio debe ir delante de él, y no el número.

También quiero eliminar cualquier carácter aparte de los números, letras,$ signo y un punto. dentro de un número.

Por ejemplo,

MRRPLowPriceUSD $ 10.10HighPriceUSD $ 1998.59595ComentariosNoChangeReportedNTPL1001KSE-100INDEX

debe convertirse

MRRP Precio bajo USD $ 10.10 Precio alto USD $ 1998.59595 Comentarios Sin cambios reportados NTPL 1001 KSE 100 ÍNDICE

Tenga en cuenta que el- fue removido.

Cualquier ayuda sería apreciada.

Relacionado:putting-space-in-camel-case-string-using-regular-expression.

Respuestas a la pregunta(1)

Su respuesta a la pregunta