@as_viper
Начинающий веб-разработчик

Как сделать, чтобы часть текста скрывалась, если в строке более 40 символов?

Как сделать, чтобы часть текста скрывалась, если в строке более 40 символов?
А когда текст скрывается, то подставляется троеточие.

Я думал slice поможет, но я либо неправильно использую его, либо он не подходит:

function myFunction(text) {
    text = prompt("", "");
    text = text.split(' ').join('');
    
    // text = text.slice(0, 50);
    if (text.length > 40) {
        text = text.slice(0, 40);
        console.log(text.length);
        document.write(text + '... ');
        //return text;
    } else {
        console.log(text.length);
        return;
    }
}
myFunction();
  • Вопрос задан
  • 413 просмотров
Решения вопроса 3
Morpheus_God
@Morpheus_God
Помнится попадалась мне подобная задачка на learn.javascript.ru
function sliceText(str, maxlength) {
  return (str.length > maxlength) ?
    str.slice(0, maxlength - 3) + '...' : str;
}
Ответ написан
Комментировать
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
profesor08
@profesor08 Куратор тега JavaScript
Зачем тут городить кучу кода. Обрезал, добавил и все.

const str = "Можете подсказать, как сделать, если в строке более 40 символов часть текста скрывалась?";

function short(str, len = 40) {
	if (str.trim().length <= len) return str.trim();
	
	return str.trim().substr(0, len - 3).trim() + "...";
}

short(str); // строка до 40 символов, включая точки
short(str, 80); // строка до 80 символов, включая точки


P.S. По хорошему бы еще отсечь возможные символы в конце строки, точки, запятые, тире и тд.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы