我要做的是仅在文本传递(".")
长度后删除最近点600
后的所有文本。所以假设一个div标签有5432个文本长度,我希望它只显示600个文本长度后最接近的点(".")
之前的文本。
这是我到目前为止所做的。
感谢任何形式的帮助
答案 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));
}
<强>更新即可。要保存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));
}
答案 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);
});