Javascript 如何使用正则表达式在大小写字符串中插入空格

Javascript 如何使用正则表达式在大小写字符串中插入空格,javascript,regex,Javascript,Regex,我使用以下正则表达式将空格插入到大小写为驼峰的字符串中 var regex = /([A-Z])([A-Z])([a-z])|([a-z])([A-Z])/g; 示例用法 var str = "CSVFilesAreCoolButTXTRules"; str = str.replace( regex, '$1$4 $2$3$5' ); // "CSV Files Are Cool But TXT Rules" 这很好,但是我还想在字符串中的任何数字之前和之后加空格,尽管我不想在单个数字之间插

我使用以下正则表达式将空格插入到大小写为驼峰的字符串中

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

var str = "CSVFilesAreCoolButTXTRules";
str = str.replace( regex, '$1$4 $2$3$5' );
// "CSV Files Are Cool But TXT Rules"
这很好,但是我还想在字符串中的任何数字之前和之后加空格,尽管我不想在单个数字之间插入空格,如果一个数字前面有一个
$
,那么空格应该放在它前面,而不是数字

我还想删除数字中除数字、字母、符号和点之外的所有字符

比如说,

MRRPLowPriceUSD$10.10高价USD$1998.59595普通无变化报告NTPL1001KSE-100指数

应该成为

MRRP低价10.10美元高价1998.59595美元评论无变化报告NTPL 1001 KSE 100指数

请注意,
-
已被删除

任何协助都将不胜感激


相关:。

尝试此正则表达式并使用正向前瞻替换:

var regex = /([^A-Za-z0-9\.\$])|([A-Z])(?=[A-Z][a-z])|([^\-\$\.0-9])(?=\$?[0-9]+(?:\.[0-9]+)?)|([0-9])(?=[^\.0-9])|([a-z])(?=[A-Z])/g;
var str = "CSVFilesAreCool123B--utTXTFoo12T&XTRules$123.99BAz";
str = str.replace(regex, '$2$3$4$5 ');
// CSV Files Are Cool 123 B ut TXT Foo 12 T XT Rules $123.99 B Az

)嗯。。如此接近,但仍然有一个连字符“-”没有剥去。如何解决这个问题?这是运行代码@KMX,是否应该删除任何连字符?它们发生在哪里?仅在某些子字符串的结尾/开头?检查示例以应用RE-here“1001KSE-100INDEX”,因此必须删除hypen。@KMX我相应地更改了我的答案。@KMX如果您有另一个(甚至相关的)问题/任务,请为此单独创建一个问题。