5

我正在使用以下正则表达式将空格插入驼峰式字符串

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"

这很好用,但我也想在字符串中的任何数字之前和之后放置空格,尽管我不希望在单个数字之间插入空格,如果数字前面有 a$那么空格应该放在它之前,而不是数字。

我还想删除除数字、字母、$符号和数字中的点之外的任何字符.

例如,

MRRPLowPriceUSD$10.10HighPriceUSD$1998.59595CommentsNoChangeReportedNTPL1001KSE-100INDEX

应该成为

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

请注意,-已删除。

任何援助将不胜感激。

相关:put-space-in-camel-case-string-using-regular-expression

4

1 回答 1

10

试试这个正则表达式并使用积极的前瞻替换:

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

(正则表达式)

于 2013-03-13T16:53:09.117 回答