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

时间:2016-11-04 12:01:05

标签: javascript jquery regex 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(",");

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

1 个答案:

答案 0 :(得分: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'));