如何在大写字母上分词?

时间:2017-03-14 19:29:39

标签: javascript

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

显而易见的

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

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

2 个答案:

答案 0 :(得分:0)

对不起自我回答,但我觉得这很整洁。 更多欢迎回答。

最明显的解决方案,虽然我找到了最后一个解决方案,但

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

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

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

?=表示“前瞻”,所以“匹配空字符串,只要后面跟一个大写字母”。这个解决方案可能更慢,但不会干扰前面任何预先存在的白色空间,更容易推广。

答案 1 :(得分:0)

整洁的解决方案:



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