600长度后检查最近点(“。”)然后删除点后的所有文本

时间:2014-09-11 09:01:05

标签: javascript jquery html

我要做的是仅在文本传递(".")长度后删除最近点600后的所有文本。所以假设一个div标签有5432个文本长度,我希望它只显示600个文本长度后最接近的点(".")之前的文本。

这是我到目前为止所做的。

JSFiddle

感谢任何形式的帮助

3 个答案:

答案 0 :(得分:6)

您可以使用.indexOf()简化代码。

要获取字符串的一部分,您可以使用.substring().substr()

var string = $('#object-full-description').text().trim();

var place = string.indexOf('.', 600);
if (place >= 0)
{
    $('#object-full-description').text(string.substring(0, place));
}

Updated fiddle

<强>更新即可。要保存HTML结构,您可以使用.html()代替.text()

var string = $('#object-full-description').html();

var place = string.indexOf('.', 600);
if (place >= 0)
{
    $('#object-full-description').html(string.substring(0, place));
}

Updated fiddle

答案 1 :(得分:0)

var stuff = $('#object-full-description').text().trim();
char = stuff.replace(/^([^]{600}[^.]*\.)[^]*$/, "$1");
console.log(stuff);

丽晶的代码也很优雅。

答案 2 :(得分:0)

稍短一点,然后+1,所以(&#34;。&#34;)也在......

$('#object-full-description').html(function(i,t){
    var cut = t.indexOf(".", 600);
    return t.substring(0, cut + 1);
});