我知道这个问题类似于 THIS如果被认为重复,我们深表歉意。
我想要实现的结果是检查具有gallery-info类的div
$('.gallery-info').each(function() {
});
我设置了一个条件,如果每个 div 的字符数大于 140 个字符,则返回子字符串。 (推特)
$('.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) + "...");
}
});
如果
子字符串的最后一个字符与patt var 匹配。 返回子字符串-1并连接“...”
其他
返回子字符串并连接“...”
我对此一直很困惑,我相信我可以在 Vanilla JS 中使用 str.replace() 和 str.charAt() 实现这一点,但我需要在 jQuery 中做到这一点。
最佳答案
我认为用下面的方法更新你的 IF 条件应该可以正常工作。
if (str.length > descLength) {
if(patt.test(str[descLength-1])) {
$(this).text(str.substr(0, descLength-1) + "...");
} else {
$(this).text(str.substr(0, descLength) + "...");
}
}
关于javascript - 使用 jquery/regex 替换子字符串中最后一个匹配的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46570055/