从句子中删除除三个单词之外的所有单词,并使用jquery在该三个句子后面添加三个点

时间:2012-04-16 09:10:24

标签: javascript jquery

我想从句子中删除除了三个单词之外的所有单词,并使用jquery在该三个句子之后添加三个点。例如,如果句子是“我们定期评估我们的借款人。请参阅我们的评估”,以便定期删除“借款人。查看我们的评估查看我们的评估”,我希望显示如下这个“我们评估我们...... ”我在这里尝试的是code

4 个答案:

答案 0 :(得分:2)

您可以使用css规则text-overflow来实现此目的。这是一个可以用来实现你想要的结果的类:

.prevent-overflow { 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis
}​

以下是对此操作的细分:white-space: nowrap;在到达元素的边缘时停止将文本形式包装到新行上。 overflow:hidden告诉文字永远不会出现在元素的边界之外,而text-overflow: ellipsis会告诉浏览器在文本末尾放置...时会被切断(请参阅text-overflow @ MDN })。

将其应用于尺寸将会切断其中包含的文字的元素。

我创建了一个jsfiddle来证明它的用途。

注意: jsfiddle在元素末尾包含一个div(<div style="clear:both"></div>),这会阻止省略号工作(请参阅此jsfiddle),我建议您将clear:both;应用于整个div,或者找到另一种方式来实现<div>的目的。

答案 1 :(得分:2)

Javascript只支持前瞻性而不是后瞻性......但是有的是解决方法

这对你有用......

var str="How are you doing today?";

regexp = new RegExp('(' + str.match(/(\w+\s){2}\w+/g)+ ')?.*'); //fetches first 3 words and makes regural expression to lookbehind this positively
var output = str.replace(regexp, function($0, $1){     //mimicks positive lookbehind
    return $1 ? $1 + '...' : $0;
});

document.writeln(output );

更新 - 这只适用于“你好吗......”....所以使用下面的

这是一个非常好的教程,可以模仿javascript中的负面和正面的lookbehinds,因为它不支持它...

Javascript仅支持前瞻

http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript

更新 - 这适用于您示例中的任何内容

var str="We evaluate our borrowers on a periodic basis. See our evaluationsWe evaluate our borrowers on a periodic basis. See our evaluationsWe evaluate our borrowers on a periodic basis. See our evaluations";

var first_three = str.match(/(\w+\s){2}\w+/);

regexp = new RegExp('(' + first_three[0] + ')?.*'); //fetches first 3 words and makes regural expression to lookbehind this positively
var output = str.replace(regexp, function($0, $1){     //mimicks positive lookbehind
    return $1 ? $1 + '...' : $0;
});

document.writeln(output);​

和正在运行的jsFiddle http://jsfiddle.net/Rpq7b/2/

答案 2 :(得分:0)

尝试以下功能:

function myfunction(val)
{
    temp = val.split(' ');

    if(val.length >= 2)
    {
         val = temp[0] + ' ' + temp[1] + ' ' + temp[2] + ' ..';
    }

    return val;
}

答案 3 :(得分:0)

我想这应该可行

 var yourText = " We evaluate our borrowers on a periodic basis", 

 result = yourText.replace(/^(.{15}[^\s]*).*/, "$1");

 alert(result);

注意:使用代码中的15来播放任意数量的

要获取省略号内容:您可以添加result + "&hellip;"