This commit is contained in:
Ilya Kantor 2014-11-16 01:40:20 +03:00
parent 962caebbb7
commit 87bf53d076
1825 changed files with 94929 additions and 0 deletions

View file

@ -0,0 +1,4 @@
function truncate(str, maxlength) {
return (str.length > maxlength) ?
str.slice(0, maxlength - 3) + '...' : str;
}

View file

@ -0,0 +1,16 @@
describe("truncate", function() {
it("обрезает строку до указанной длины (включая троеточие)", function() {
assert.equal(
truncate("Вот, что мне хотелось бы сказать на эту тему:", 20),
"Вот, что мне хоте..."
);
});
it("не меняет короткие строки", function() {
assert.equal(
truncate("Всем привет!", 20),
"Всем привет!"
);
});
});

View file

@ -0,0 +1,28 @@
Так как окончательная длина строки должна быть `maxlength`, то нужно её обрезать немного короче, чтобы дать место для троеточия.
```js
//+ run
function truncate(str, maxlength) {
if (str.length > maxlength) {
return str.slice(0, maxlength - 3) + '...';
// итоговая длина равна maxlength
}
return str;
}
alert(truncate("Вот, что мне хотелось бы сказать на эту тему:", 20));
alert(truncate("Всем привет!", 20));
```
Можно было бы написать этот код ещё короче:
```js
//+ run
function truncate(str, maxlength) {
return (str.length > maxlength) ?
str.slice(0, maxlength - 3) + '...' : str;
}
```
P.S. Кстати, в кодироке Unicode существует специальный символ "троеточие": `…` (HTML: `…`), который можно использовать вместо трёх точек. Если его использовать, то можно отрезать только один символ.

View file

@ -0,0 +1,17 @@
# Усечение строки
[importance 5]
Создайте функцию `truncate(str, maxlength)`, которая проверяет длину строки `str`, и если она превосходит `maxlength` -- заменяет конец `str` на `"..."`, так чтобы ее длина стала равна `maxlength`.
Результатом функции должна быть (при необходимости) усечённая строка.
Например:
```js
truncate("Вот, что мне хотелось бы сказать на эту тему:", 20) = "Вот, что мне хотело..."
truncate("Всем привет!", 20) = "Всем привет!"
```
Эта функция имеет применение в жизни. Она используется, чтобы усекать слишком длинные темы сообщений.