在字符串中的完整大写标题后添加换行符

Dan*_*ide 4 javascript regex jquery object

我目前正在开发一个项目,其中API吐出一个格式如下的描述:

这是一个标题这是一个段落.这是另一段.

我想要得到的结果是

这是一个标题

这是一个段落

这是另一段

我一直在玩一些正则表达式,但努力获得理想的结果,我目前的尝试是在每个大写字母/单词的末尾添加换行符.

var myString = "THIS IS A TITLE This is a paragraph of random text. This is another paragraph of random text.";
var myStringFormatted = myString.replace(/([A-Z]+)/g, ",$1").replace(/,/g," <br />").split(",");
Run Code Online (Sandbox Code Playgroud)

是否有可能获得理想的结果?(jsfiddle示例:https://jsfiddle.net/srwwpxh4/1/ )

Nin*_*olz 7

你可以使用积极的前瞻.

它首先查找非单词字符,大写字符后跟小写字符,然后插入换行符.

var r = /\W+(?=[A-Z][a-z])/g,
    s = 'THIS IS A TITLE This is a paraGraph. This is another paragraph.';

console.log(s.replace(r, '$&\n'));
Run Code Online (Sandbox Code Playgroud)

  • @NinaScholz:是的,我知道,重点是OP方法有问题,而不是你提出的模式. (2认同)