Изменение строк JS

В JavaScript строки являются неизменяемыми, это означает, что вы не можете изменить существующую строку. Вместо этого вы всегда создаете новую строку с измененным содержимым.

Существует несколько способов изменения строк в JavaScript. Давайте их разберем.

Способ 1

Срезы позволяют извлечь часть строки и использовать ее отдельно. Вы также можете использовать их для вставки новой подстроки в существующую строку. Срезы делаются с помощью методов slice и substring.

Пример:

javascriptlet arr = ['a', 'b', 'c', 'd', 'e'];
let sub = arr.slice(0, 2);

console.log(sub); // ['a', 'b']

Способ 2

Метод replace позволяет заменить вхождения одной подстроки на другую подстроку. Смотрите пример:

javascriptlet str = 'abcde';
let res = str.replace('a', '!');

console.log(res); // '!bcde'

Данный метод, однако, меняет только первое вхождение строки. Чтобы заменить все вхождения, нужно использовать специальные приемы.

Способ 3

Несмотря на то, что метод replace меняет только первое совпадение, можно заменить все совпадения с помощью цикла:

javascriptlet elem = 'a';
let str = 'aaa bbb';

while (str.includes(elem)) {
  str = str.replace(elem, '!');
}

console.log(str); // '!!! bbb'

Способ 4

Можно также осуществить все замены с помощью регулярных выражений:

javascriptlet str = 'aaa bbb';
let res = str.replace(/a/g, '!');

console.log(str); // '!!! bbb'

Способ 5

Поменять символ строки напрямую нельзя, так как строки в JS не изменяемые:

javascriptlet str = 'aaa bbb';
str[0] = '!';
console.log(str); // не работает

Желаемого эффекта, однако, можно добиться с помощью комбинаций методов split и join:

javascriptlet str = 'aaa bbb';

let arr = str.split('');
arr[0] = '!';
let res = arr.join('');

console.log(res); // '!aa bbb'