截断字符串以保留前n个单词

Ric*_*kwa 3 javascript

正如标题所说,我正在尝试将字符串截断为前n个单词.

var text = $("#textarea-id").val();
var truncated = text.split(/(?=\s)/gi).slice(0, n).join('');
Run Code Online (Sandbox Code Playgroud)

这得到了我想要的东西,但问题是如果一行中有两个空白字符,那么它将其中一个空白字符作为自己的单词.如何在不改变字符串的情况下防止这种情况(除了截断)?

我已经尝试在正则表达式+之后使用量词,\s但是没有做任何事情.

Ami*_*oki 6

在拆分之前,只需用一个空间替换多于1个空间.

var truncated = text.replace(/\s+/g," ").split(/(?=\s)/gi).slice(0, n).join('');
Run Code Online (Sandbox Code Playgroud)