如何将Javascript字符串拆分为少于140个字符的句子?

时间:2016-09-26 20:56:13

标签: javascript regex string twitter

我在Javascript环境中使用字符串工作,我最终希望通过Twitter机器人发推文。问题是,有时这个字符串是两个短句,有时它是几个很长的句子。

我正在使用的示例字符串:

  

     
    

" Blah foo。没有那么多foo。"

  
     

长:

     
    

"很多等等。这么多foo。这个foo绝不适合一条推文。这条推文中的人物需要制作成多条推文。事实上,有189个字符。"

  

我还添加到开头和结尾,所以最终看起来像这样:

  

     
    

"今天:Blah foo。没有那么多foo。 #主题标签"

  

我希望将长度超过140的字符串拆分成几条推文。

  

长推文1:

     
    

"今天:很多等等。这么多foo。这个foo绝不适合一条推文。 #主题标签"

  
     

长推文2:

     
    

"此推文中的字符需要制作成多条推文。实际上,有189个字符。 #主题标签"

  

我看到它的方式,我可以string.split()将整个字符串放入一个句子数组中并循环遍历它们以构建每条推文,或者我可以使用正则表达式来选择并将长字符串拆分为多个不到140个字符的字符串。

哪种方法更有效?我认为它将是Regex选项。我将如何实施该解决方案?

2 个答案:

答案 0 :(得分:1)

一种天真但简单的方式就是像

这样的正则表达式
/.{1,140}\./g

示例:



text = "Lots of blah foo. So many foo. There is a no way that this foo would fit in one tweet. The characters in this tweet need to be made into a multiple tweets. In fact, there are 189 characters."
m = text.match(/.{1,140}\./g)

for (let tweet of m)
    console.log(tweet, tweet.length)




答案 1 :(得分:0)

var arr = [];
var str = "Lots of blah foo. So many foo. There is a no way that this foo would fit in one tweet. The characters in this tweet need to be made into a multiple tweets. In fact, there are 189 characters.";
arr.push(str.substring(0, 140));
arr.push(str.substring(140));