Обрезание строки до заданной длины с обоих краев в JavaScript

Метод truncateBoth()

В JavaScript нет отдельного метода для данной задачи. Однако его можно добавить самостоятельно.

Исходный код

if (!String.prototype.truncateBoth) {
	String.prototype.truncateBoth = function (length) {
		var string = '' + this;
		length = parseInt(length);
		if (length <= 0) {
			string = '';
		} else {
			var truncateLength = string.length - length;
			if (truncateLength > 0) {
				string = string.substr(Math.floor(truncateLength / 2), length);
			}
		}
		return string;
	};
}

Синтаксис

string.truncateBoth ( length )

Аргументы

  1. length — нужная длина строки.

Возвращаемое значение

Возвращает новую строку, содержащую строку string, на которой был вызван метод truncateBoth(), обрезанную до длины length с обоих краев.

Особенности

  • Безопасна для многобайтных строк.
  • Важно помнить, что при вычислении обрезаемых подстрок в приоритете правый край. Т.е. если строка обрезается на 3 символа, то с правого края будет срезано 2 символа, а с левого — 1.