如何在字符串中添加非连续大写字母之前的空格,同时排除连续大写字母呢?

时间:2019-01-13 12:30:27

标签: regex angular string pipe

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

预期结果:

  

战争之王->战争之王

     

HQ-> HQ

实际结果:

  

战争之王->战争之王

     

HQ-> H Q

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

管道摘要:https://gist.github.com/FrisoDenijs/fc5d8a4abe2ce6a8e3544dd1f071a063

到目前为止,它只是“ HQ”,因此我也尝试排除负负超前/((?!HQ)|[A-Z])/g的HQ,但这产生了以下结果:

  

LordOfWar-> L o r d O f W a r

     

HQ-> H Q

最理想的情况是我希望使用一个常规正则表达式,因此,如果遇到其他类似情况,则不必添加其他排除项。

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

1 个答案:

答案 0 :(得分:1)

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