我在Javascript环境中使用字符串工作,我最终希望通过Twitter机器人发推文。问题是,有时这个字符串是两个短句,有时它是几个很长的句子。
我正在使用的示例字符串:
短
" Blah foo。没有那么多foo。"
长:
"很多等等。这么多foo。这个foo绝不适合一条推文。这条推文中的人物需要制作成多条推文。事实上,有189个字符。"
我还添加到开头和结尾,所以最终看起来像这样:
短
"今天:Blah foo。没有那么多foo。 #主题标签"
我希望将长度超过140的字符串拆分成几条推文。
长推文1:
"今天:很多等等。这么多foo。这个foo绝不适合一条推文。 #主题标签"
长推文2:
"此推文中的字符需要制作成多条推文。实际上,有189个字符。 #主题标签"
我看到它的方式,我可以string.split()
将整个字符串放入一个句子数组中并循环遍历它们以构建每条推文,或者我可以使用正则表达式来选择并将长字符串拆分为多个不到140个字符的字符串。
哪种方法更有效?我认为它将是Regex选项。我将如何实施该解决方案?
答案 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));