【问题标题】:How to use regular expressions to insert space into a camel case string如何使用正则表达式在驼峰式字符串中插入空格
【发布时间】:2013-03-14 01:10:12
【问题描述】:

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

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.10HighPriceUSD$1998.59595CommentsNoChangeReportedNTPL1001KSE-100INDEX

应该变成

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

请注意,- 已被删除。

我们将不胜感激。

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

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

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

    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
    

    (RegExr)

    【讨论】:

    • hmm.. 如此接近,但连字符“-”仍然没有被剥离。如何解决?这是运行代码jsfiddle.net/kreativemart/zEpjR
    • @KMX 是否应该删除 any 连字符?它们发生在哪里?仅在某些子字符串的结尾/开头?
    • 检查示例以在此处应用 RE “1001KSE-100INDEX”,因此必须删除连字符。
    • @KMX 我相应地改变了我的答案。
    • @KMX 如果您还有其他(甚至相关的)问题/任务,请为此创建一个单独的问题。
    猜你喜欢
    • 2013-02-28
    • 1970-01-01
    • 2021-10-21
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多