【问题标题】:How can I add spaces in string before non sequential capital letters, while excluding sequential capital letters?如何在非连续大写字母之前在字符串中添加空格,同时排除连续大写字母?
【发布时间】:2019-01-13 12:30:27
【问题描述】:

我在 Angular 中制作了一个管道,在其中我得到了一个枚举的名称,并且我想在大写字母之前的名称中添加空格。但是,有些名称由两个连续的大写字母组成,我不想分开。

预期结果:

LordOfWar -> 战争之王

总部 -> 总部

实际结果:

LordOfWar -> 战争之王

总部 -> 总部

正则表达式:/([A-Z])/g

管道sn-p:https://gist.github.com/FrisoDenijs/fc5d8a4abe2ce6a8e3544dd1f071a063

到目前为止,它只是“HQ”,所以我也尝试用否定的前瞻 /((?!HQ)|[A-Z])/g 排除 HQ,但这给出了以下结果:

LordOfWar -> L o r d Of W a r

总部 -> 总部

最好我想要一个通用的正则表达式,所以如果我遇到另一个类似的情况,我不必添加另一个排除项。

否则我想知道如何排除总部(以及如何为以后添加更多排除项)

【问题讨论】:

  • +量词:/([A-Z]+)/g

标签: regex angular string pipe


【解决方案1】:

使用两个组应该可以解决问题:replace(/([a-z]+)([A-Z])/g, '$1 $2')

【讨论】:

    猜你喜欢
    • 2021-01-09
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多