/**
* Обрезает строку до длины length справа, слева или в центре, в зависимости от параметра mode. Вместо вырезанного
* куска вставляет строку truncation.
* @param {Number} length (Optional) Длина результирующей строки (по умолчанию 30).
* @param {String} truncation (Optional) Строка, добавляемая вместо вырезанной части (по умолчанию '...').
* @param {String} mode (Optional) Режим работы. left -- отрезает слева, right -- справа, center -- в центре.
* (по умолчанию right).
* @return {String} Обрезанная строка.
*/
String.prototype.truncate = function(length, truncation, mode) {
length = length || 30;
if (this.length <= length) {
return this.valueOf();
}
truncation = truncation || '...';
switch (mode) {
case 'left':
return truncation + this.slice(truncation.length - length);
case 'center':
var l = Math.floor((length - truncation.length) / 2);
return this.slice(0, l) + truncation + this.slice(-l);
default:
return this.slice(0, length - truncation.length) + truncation;
}
};
alert('1234567890'.truncate(5));