TrimEnd: примеры (JAVASCRIPT)
trimEnd: stringФункция trimEnd в JavaScript
Метод trimEnd() принадлежит объектам типа String и удаляет пробельные символы с правого края (конца) строки. Эта операция полезна при обработке пользовательского ввода, чтении данных из файлов или парсинге текста, где необходимо устранить нежелательные пробелы, табуляции или символы новой строки в конце.
Пробельными символами считаются: обычный пробел (U+0020), табуляция (\t, U+0009), символ новой строки (\n, U+000A), возврат каретки (\r, U+000D) и некоторые другие пробельные символы Юникода, например, неразрывный пробел (U+00A0).
Аргументы
Метод trimEnd() не принимает параметров.
Возвращаемое значение
Возвращается новая строка, содержащая исходное значение без пробельных символов в конце. Исходная строка не изменяется.
Короткие примеры использования
Базовое удаление пробелов в конце строки:
const str = ' Привет, мир! ';
console.log(`'${str.trimEnd()}'`);' Привет, мир!'
Удаление символов табуляции и новой строки:
const str2 = 'Текст\n\t';
console.log(`'${str2.trimEnd()}'`);'Текст'
Работа со строкой без концевых пробелов:
const str3 = 'Без пробелов';
console.log(`'${str3.trimEnd()}'`);'Без пробелов'
Похожие методы в JavaScript
trimStart() выполняет обратную операцию, удаляя пробельные символы только в начале строки. trim() удаляет их с обоих концов одновременно. Выбор метода зависит от конкретной задачи: trimEnd() применяется, когда важно сохранить начальные пробелы (например, для форматирования), а trim() используется для полной очистки строки.
Типичные ошибки
Ожидание модификации исходной строки. Метод возвращает новую строку, не изменяя оригинал.
let original = ' тест ';
let modified = original.trimEnd();
console.log(original);
console.log(modified);' тест ' ' тест'
Некорректная обработка нулевых или нестроковых значений. Вызов метода для null или undefined вызывает ошибку.
let value = null;
console.log(value.trimEnd());TypeError: Cannot read properties of null
История изменений
Метод trimEnd() был стандартизирован в ECMAScript 2019 (ES10) вместе с trimStart(). До этого использовалось альтернативное название trimRight(), которое остается поддерживаемым для обратной совместимости. Оба имени ссылаются на одну функцию.
Расширенные примеры
Обработка массива строк для выравнивания по левому краю:
const lines = ['строка1 ', ' строка2\t', 'строка3\n'];
const cleaned = lines.map(line => line.trimEnd());
console.log(cleaned);['строка1', ' строка2', 'строка3']
Цепочка методов для очистки данных:
const userInput = ' email@example.com \n';
const processed = userInput.trimEnd().toLowerCase();
console.log(`'${processed}'`);' email@example.com'
Удаление только конкретных символов (используя регулярные выражения):
const data = 'текстxxx';
const trimmedCustom = data.replace(/x+$/, '');
console.log(`'${trimmedCustom}'`);'текст'
Сравнение производительности с trimRight():
const testStr = 'a '.repeat(1000);
console.time('trimEnd');
testStr.trimEnd();
console.timeEnd('trimEnd');
console.time('trimRight');
testStr.trimRight();
console.timeEnd('trimRight');trimEnd: 0.025ms trimRight: 0.028ms
Аналоги в других языках программирования
В Python метод rstrip() аналогичен по поведению:
text = ' строка '
print(f"'{text.rstrip()}'")' строка'
В PHP функция rtrim() принимает строку и дополнительные символы для удаления:
$text = ' текст ';
echo "'" . rtrim($text) . "'";' текст'
В MySQL функция RTRIM() удаляет только пробелы (не все пробельные символы):
SELECT RTRIM(' данные ');' данные'
В C# метод TrimEnd() может принимать массив символов для удаления:
string text = " пример ";
Console.WriteLine($"'{text.TrimEnd()}'")' пример'