我知道这个问题与这个问题相似,如果被视为重复。
我要实现的结果是用 GALLERY-INFO
检查divs$('.gallery-info').each(function() {
});
我设置了一个条件,如果每个DIV的字符计数大于140个字符,则返回子字符串。(Twitter)
$('.gallery-info').each(function() {
var descLength = 140;
var str = $(this).text();
var patt = new RegExp(/[,;.:!()&s$]/g);
if (str.length > descLength) {
$(this).text(str.substr(0, descLength) + "...");
}
});
如果
substring的最后一个字符匹配 patt var。返回substring -1和Concat" ..."
其他
返回子字符串和concat" ..."
我一直对此有一个大脑放屁,我相信我可以在str.replace()和str.charat()的香草JS中实现这一目标,但是我需要在jQuery中这样做。
我认为使用以下条件更新您的条件应该很好。
if (str.length > descLength) {
if(patt.test(str[descLength-1])) {
$(this).text(str.substr(0, descLength-1) + "...");
} else {
$(this).text(str.substr(0, descLength) + "...");
}
}
codepen :https://codepen.io/azimjs/pen/mbqjny
我认为这是您所描述的。
$('.gallery-info').each(function() {
var descLength = 140;
var str = $(this).text();
var patt = new RegExp(/[,;.:!()&s$]/g);
if (str.length > descLength) {
var substring = str.substr(0, descLength);
var lastChar = substring[substring.length-1];
if (lastChar.match(patt)) {
$(this).text(str.substr(0, descLength -1) + "...");
} else {
$(this).text(str.substr(0, descLength) + "...");
}
}
});
codepen
https://codepen.io/foozie3moons/pen/gmobvw