【问题标题】:How do I split a word on the capital letters?如何在大写字母上拆分单词?
【发布时间】:2017-03-14 19:29:39
【问题描述】:

我想将例如“FileNotFound”更改为“File Not Found”。

显而易见的

"FileNotFound".split(/[A-Z]/g).join(" ")

返回“ile ot ound”,这让我听起来像是有某种语言缺陷。

【问题讨论】:

标签: javascript


【解决方案1】:

很抱歉自我回答,但我认为这很整洁。 更多欢迎回答。

最明显的解决方案是

"FileNotFound".replace(/[A-Z]/g, a => " " + a).trim()

一个更具教育意义的解决方案 (imo) 是这样的:

"FileNotFound".split(/(?=[A-Z])/g).join(" ")

?= 的意思是“前瞻”,所以“匹配空字符串,只要它后面跟着一个大写字母”。此解决方案可能较慢,但不会干扰前面任何预先存在的空白,并且更容易概括。

【讨论】:

    【解决方案2】:

    更整洁的解决方案:

    console.log("FileNotFound".replace(/([A-Z][a-z]+)(?=[A-Z])/g, "$1 "));

    【讨论】:

    • 它会对“File1NotFound”做什么?
    • 你会做"File1NotFound".replace(/([A-Z][a-z0-9]+)(?=[A-Z])/g, "$1 ")
    猜你喜欢
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 2023-03-13
    • 1970-01-01
    • 2022-11-29
    相关资源
    最近更新 更多