TrimRight: примеры (JAVASCRIPT)

Метод trimRight для обработки строк в JavaScript
Раздел: Строки, Форматирование
trimRight: string

Функция trimRight в JavaScript

Метод trimRight() (также известный как trimEnd()) принадлежит объекту String и предназначен для удаления пробельных символов с правого края (конца) строки. Он возвращает новую строку, не изменяя исходную. Пробельными символами считаются: обычный пробел, табуляция (\t), перевод строки (\n), возврат каретки (\r), неразрывный пробел (\u00A0) и другие символы из категории Space Separator Unicode.

Функция применяется для очистки пользовательского ввода, обработки текстовых данных из внешних источников, нормализации строк перед сравнением или сохранением.

Синтаксис: str.trimRight() или str.trimEnd().

Аргументы:

Метод не принимает аргументов.

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

Новая строка, являющаяся копией исходной строки, но с удаленными пробельными символами в ее конце. Если в конце исходной строки не было пробельных символов, возвращается новая строка, идентичная исходной.

Примеры использования

Базовый пример удаления пробелов справа:

let str1 = '   Текст с пробелами   ';
console.log(`'${str1.trimRight()}'`);
'   Текст с пробелами'

Удаление различных пробельных символов:

let str2 = 'Строка\t\n\r';
console.log(`'${str2.trimRight()}'`);
'Строка'

Использование синонима trimEnd:

let str3 = 'JavaScript   ';
console.log(`'${str3.trimEnd()}'`);
'JavaScript'

Строка без конечных пробелов остается неизменной:

let str4 = 'Нет пробелов';
console.log(`'${str4.trimRight()}'`);
'Нет пробелов'

Похожие функции в JavaScript

trim(): Удаляет пробелы с обоих концов строки. Используется, когда необходимо очистить строку целиком.

trimLeft() / trimStart(): Удаляет пробельные символы только с начала строки. Полезен при обработке выравненного текста.

replace() с регулярным выражением: Позволяет удалять не только пробелы, но и любые другие заданные символы с конца строки. Например, str.replace(/[\s]+$/, '') аналогично trimRight(), а str.replace(/[0-9]+$/, '') удалит цифры в конце.

Выбор метода зависит от задачи: для стандартной очистки от пробелов используют trimRight, для более сложных паттернов — replace().

Типичные ошибки

Ожидание модификации исходной строки. Метод возвращает новую строку, а не изменяет существующую.

let original = '  строка  ';
original.trimRight();
console.log(`'${original}'`); // Ошибочное ожидание изменений
'  строка  '

Попытка передать аргументы. Это может привести к игнорированию аргументов или ошибке в будущих версиях.

'test  '.trimRight(' '); // Аргумент игнорируется
'test'

Применение к значениям, не являющимся строками. Необходимо предварительное преобразование.

let num = 123;
console.log(num.trimRight()); // Ошибка TypeError
Uncaught TypeError: num.trimRight is not a function

Изменения в версиях

Метод trimRight() был стандартизирован в ECMAScript 2017 (ES8). До этого он мог быть реализован в браузерах как нестандартный метод.

В той же спецификации ES8 был представлен синоним trimEnd() для лучшей согласованности с другими методами, такими как padEnd(). Оба имени ссылаются на одну и ту же функцию и могут использоваться взаимозаменяемо.

Расширенные примеры

Очистка данных из внешнего источника (например, CSV):

Пример javascript
const csvRow = 'value1, value2 ,value3   ';
const cleaned = csvRow.split(',').map(cell => cell.trimRight());
console.log(cleaned);
['value1', ' value2', 'value3']

Построение выравненного текстового интерфейса:

Пример javascript
function alignRight(text, width) {
    return text.trimRight().padStart(width, '.');
}
console.log(alignRight('Заголовок', 20));
..........Заголовок

Рекурсивная очистка пробелов в конце для всех строк в объекте:

Пример javascript
function trimObjectStrings(obj) {
    for (let key in obj) {
        if (typeof obj[key] === 'string') {
            obj[key] = obj[key].trimRight();
        }
    }
    return obj;
}
let data = { name: 'John ', age: '30 ' };
console.log(trimObjectStrings(data));
{ name: 'John', age: '30' }

Работа с неразрывным пробелом (\u00A0):

Пример javascript
let str = 'Важный текст\u00A0';
console.log(str.trimRight().length === str.length);
console.log(str.trimRight().length);
false
14

Использование в цепочке методов:

Пример javascript
let input = '   Привет, мир!   \n';
let result = input.trimRight().toUpperCase().slice(0, 10);
console.log(`'${result}'`);
'   ПРИВЕТ,'

Аналоги в других языках

PHP: Функция rtrim($string, $charlist). В отличие от JavaScript, вторым аргументом можно задать набор символов для удаления.

echo rtrim('  test  '); // '  test'
echo rtrim('123test123', '123'); // '123test'
  test
123test

Python: Метод str.rstrip([chars]). Также поддерживает необязательный аргумент для указания удаляемых символов.

print('  test  '.rstrip()) # '  test'
print('xyztestxyz'.rstrip('xyz')) # 'xyztest'
  test
xyztest

MySQL: Функция RTRIM(str) удаляет только пробелы, без возможности указать другие символы.

SELECT RTRIM('  test  ');
  test

C/C++: Стандартной функции нет, требуется ручная реализация или использование библиотечных функций, работающих с указателями.

JS trimRight function comments

En
TrimRight Removes whitespace from the end of a string