0

我想从一个句子中删除除三个单词之外的所有单词,并使用 jquery 在这三个句子之后添加三个点。例如,如果句子是“我们定期评估我们的借款人。查看我们的评估”,因此删除“定期借款人。查看我们的评估,查看我们的评估”,我想这样显示“我们评估我们的.. . " 我试过这里是代码

4

4 回答 4

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>

于 2012-04-16T09:51:30.737 回答
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/

于 2012-04-16T12:18:52.643 回答
0

尝试以下功能:

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

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

    return val;
}
于 2012-04-16T09:19:57.367 回答
0

我想这应该工作

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

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

 alert(result);

注意:使用15代码中的任意合适数量的

要获得省略号的东西:您可以添加result+"&hellip;"

于 2012-04-16T12:35:34.917 回答