Добрый день. Как правильно обрезать текст с применение различных фильтров: по количеству символов, но чтобы в конце не было пробела и знаков пунктуации (если я ничего не упустил).
Исходный код таков, но здесь не хватает удаления знаков пунктуации.
function kitcut(text, limit) {
text = text.trim();
if( text.length <= limit) return text;
text = text.slice( 0, limit);
const lastSpace = text.lastIndexOf(" ");
if( lastSpace > 0) {
text = text.substr(0, lastSpace);
}
return text + "...";
}
Пробовал такой вариант, но он, к сожалению, обрезает не по последнему символу из регулярного выражения. Возможно по первому из последних найденных, точно не знаю как это работает
function kitcut(text, limit) {
text = text.trim();
if( text.length <= limit) return text;
text = text.slice( 0, limit);
const lastSpace = text.lastIndexOf(" ");
const match = text.match(/[!.,?]/);
const lastIndex = text.lastIndexOf(match[match.length-1]);
if( lastSpace > 0) {
text = text.substr(0, lastSpace).substr(0, lastIndex);
}
return text + "...";
}