如何从非标记文本中获取最后几个句子的文本?

时间:2014-08-19 12:05:16

标签: javascript jquery

我正在寻找简单解决一个简单问题的方法。 我得到一个html文本,我需要删除最后三个句子并将这些句子放在其他框中,所有这些都在客户端。

我的html里面没有标签,它是纯文本。

我尝试了不同的方式,构建了一个"数组"但我确信它可能更容易。

非常感谢!

编辑:

var t = $("#text-generic p").text();
var sentences = t.split('.');
sentences.sort(function(a, b) {
    return a.length - b.length;
});

我将一个名为句子的数组中的句子分开,但是......我怎样才能得到最后4个句子,例如,从html中删除它们并在另一边写入?它有可能吗?

非常感谢!

2 个答案:

答案 0 :(得分:3)

使用 slice(),这是一个相当简单的JS解决方案:

var t= "Per aliquip accusamus ad. eleifend repudiare adversarium sed id. Ne mel audire nominavi verterem. Ei per munere suscipit abhorreant, iisque docendi definiebas usu no, vim assum meliore voluptatum ad. Accusam facilisis per ex. ius ea summo viris quaerendum. Qui ei erat aliquam, est an habemus nominavi pertinacia. Scaevola consectetuer ex vix, ferri antiopam eam ut."
var sentences=t.split('.');
sentences.slice(0,-3) // change -3 to the number of sentences to truncate with -ive sign

这是JSFiddle

答案 1 :(得分:1)

使用splice()执行此操作:

var arraySentences = $('#first').html().split('.');
var numberOfSentences = arraySentences.length - 1; // because of blank after last period
var numberOfSentencesWeWantInSecond = 4;
var remainderOfSentences = numberOfSentences - numberOfSentencesWeWantInSecond;
var membersOfFirst = arraySentences.splice(0, remainderOfSentences);
$('#first').html(membersOfFirst.join('. '));
$('#second').html(arraySentences.join('. ')); // the leftover sentences

以下是一个示例 - http://jsfiddle.net/rzgpu11w/