714
 

Обрезание строки (trim)

Под “обрезанием” строки подразумевается удаление пробелов, табов, переходов на новую строку и других “пустых” символов в начале и конце строки. Поскольку JavaScript, в отличие от других языков, не содержит функцию trim(), то её приходится создавать самостоятельно. Одним из самых распространенных вариантов реализации этой функции является следующий:

function trim(str) {
    return str.replace(/^\s+|\s+$/g, '');
}

Здесь задача удаления пробелов решается при помощи регулярных выражений. Однако такой вариант отлично работает только с короткими строками. Если же обрезаемая строка имеет большой размер, то производительность такой функции будет невысока, потому что интерпретатору придется анализировать всю строку целиком (хотя это вовсе и не нужно), для того чтобы удалить её концовку. Гораздо более производительной будет следующая функция:

function trim (str) {
	str = str.replace(/^\s+/, '');
	for (var i = str.length; --i >= 0;) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}

В этой функции при помощи регулярных выражений удаляется лишь пробелы в начале строки, пробелы в конце удаляются в цикле for.

Посмотреть другие варианты реализации функции trim() и результаты тестов на производительность можно найти здесь. О проблеме кроссбраузерности читайте здесь.

Добавить в закладки:
Maklay.com - Большой каталог товаров для спорта и активного отдыха

Комментарии на “Обрезание строки (trim)”

  1. Спасибо, очень помогло

  2. [...] Один из таких способов опубликован в моей базе знания, в котором используется довольно таки простое [...]

Оставить комментарий

JSToolbox создан на основе WordPress