5

我只想删除前 100 个单词并保留字符串中剩余的内容。

我下面的代码完全相反:

   var short_description = description.split(' ').slice(0,100).join(' ');
4

4 回答 4

21

删除第一个参数:

var short_description = description.split(' ').slice(100).join(' ');

Usingslice(x, y)会给你元素 from xto y,但是 usingslice(x)会给你元素 fromx到数组的末尾。(注意:如果描述少于 100 个单词,这将返回空字符串。)

这是一些文档

您还可以使用正则表达式:

var short_description = description.replace(/^([^ ]+ ){100}/, '');

这是正则表达式的解释:

^      beginning of string
(      start a group
[^ ]   any character that is not a space
+      one or more times
       then a space
)      end the group. now the group contains a word and a space.
{100}  100 times

然后将这 100 个单词替换为空。(注意:如果描述少于 100 个单词,此正则表达式将只返回未更改的描述。)

于 2013-05-13T12:21:01.930 回答
1
//hii i am getting result using this function   


 var inputString = "This is           file placed  on           Desktop"
    inputString = removeNWords(inputString, 2)
    console.log(inputString);
    function removeNWords(input,n) {
      var newString = input.replace(/\s+/g,' ').trim();
      var x = newString.split(" ")
      return x.slice(n,x.length).join(" ")
    }
于 2016-07-20T13:17:06.407 回答
0
var short_description = description.split(' ').slice(100).join(' ');
于 2013-05-13T12:22:53.707 回答
0

这样做相反的原因是 slice 返回所选元素(在本例中为前一百个)并将它们返回到它自己的数组中。要在 100 之后获取所有元素,您必须执行类似 description.slice(100) 的操作以正确获取拆分数组,然后您自己的连接以合并回数组。

于 2013-05-13T12:23:09.467 回答