Полный цикл в digital

Методы для работы со строками

Для создания строк мы можем как напрямую присваивать переменной или константе строку:

const name = "Tom";

Для работы со строками предназначен объект String, поэтому также можно использовать конструктор String:

const name = new String("Tom");

Как правило, используется первый более краткий способ. В первом случае JavaScript при необходимости автоматически преобразует переменную примитивного типа в объект String, объект имеет большой набор свойств и методов, с помощью которых мы можем манипулировать строками.

Длина строки

Свойство length указывает на длину строки:

const hello = "привет мир";
console.log(`В строке "${hello}"  ${hello.length} символов`);  // В строке "привет мир"  10 символов

Повторение строки

Метод repeat() позволяет создать строку путем многократного повторения другой строки. Количество повторов передается в качестве аргумента:

const hello = "hello ";
console.log(hello.repeat(3));  // hello hello hello

Поиск в строке

Для поиска в строке некоторой подстроки используются методы indexOf() (индекс первого вхождения подстроки) и lastIndexOf() (индекс последнего вхождения подстроки). Эти методы принимают два параметра:

  • Подстроку, которую надо найти
  • Необязательный параметр, который указывает с какого символа следует проводить поиск подстроки в строке

Оба этих метода возвращают индекс символа, с которого в строке начинается подстрока. Если подстрока не найдена, то возвращается число -1:

const hello = "привет мир. пока мир";
const key = "мир";
const firstPos = hello.indexOf(key);
const lastPos = hello.lastIndexOf(key);
console.log("Первое вхождение: ", firstPos);  // 7
console.log("Последнее вхождение: ", lastPos);  // 17

Метод includes() возвращает true, если строка содержит определенную подстроку:

const hello = "привет мир. пока мир";
console.log(hello.includes("мир"));  // true
console.log(hello.includes("миг"));  // false

С помощью второго дополнительного параметра можно определить индекс, с которого будет начинаться поиск подстроки:

const hello = "привет мир. пока мир";
console.log(hello.includes("мир", 5));  // true
console.log(hello.includes("привет", 6));  // false

Выбор подстроки

Для того, чтобы вырезать из строки подстроку, применяются методы substring() и slice().

Метод substring() принимает два параметра:

  • Индекс символа в строке начиная с которого надо проводить обрезку строки, обязательный параметр
  • Индекс до которого надо обрезать строку, необязательный параметра - если он не указан, то обрезается вся остальная часть строки
const hello = "привет мир. пока мир";
const world = hello.substring(7, 10);  // с 7-го по 10-й индекс
console.log(world);  // мир
const bye = hello.substring(12);  // c 12 индекса до конца строки
console.log(bye);  // пока мир

Метод slice() также позволяет получить из строки какую-то ее часть, она принимает два параметра:

  • Индекс символа в строке начиная с которого надо проводить обрезку строки, обязательный параметр
  • Индекс до которого надо обрезать строку, необязательный параметра - если он не указан, то обрезается вся остальная часть строки
const hello = "привет мир. пока мир";
const world = hello.slice(7, 10);  // с 7-го по 10-й индекс
console.log(world);  // мир
const bye = hello.slice(12);  // c 12 индекса до конца строки
console.log(bye);  // пока мир

Можно заметить, этот метод похож на метод substring(), тем не менее между ними есть небольшие различие. Прежде всего в slice() начальный индекс должен быть меньше чем конечный. В substring(), если начальный индекс больше конечного, то они меняются местами - то есть substring(5, 1) будет равноценно substring(1, 5):

const hello = "привет мир. пока мир";
const world1 = hello.slice(6, 0);  //
console.log(world1);  // 
const world2 = hello.substring(6, 0);  // аналогично hello.substring(0, 6)
console.log(world2);  // привет

Другое отличие, slice() позволяет использовать отрицательные индексы. Отрицательный индекс указывает на индекс символа относительно конца строки. substring() отрицательные индексы не поддерживает:

const hello = "привет мир. пока мир";
const bye1 = hello.slice(-8, -4);  // с 8-го индекса с конца до 4 индекса с конца
console.log(bye1);
const bye2 = hello.substring(-8, -4);  // не работает
console.log(bye2);

Управление регистром

Для изменения регистра имеются методы toLowerCase() для перевода в нижний регистр и toUpperCase() для перевода в верхний регистр:

const hello = "Привет Том";
console.log(hello.toLowerCase());  // привет том
console.log(hello.toUpperCase());  // ПРИВЕТ ТОМ

Получение символа по индексу

Чтобы получить определенный символ в строке по индексу, можно применять методы charAt() который возвращает сам символ и charCodeAt() который возвращает числовой код символа. Оба этих метода в качестве параметра принимают индекс символа:

const hello = "Привет Том";
console.log(hello.charAt(2));  // и
console.log(hello.charCodeAt(2));  // 1080

Удаление пробелов

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

let hello = "   Привет Том  ";
const beforeLength = hello.length;
hello = hello.trim();
const afterLength = hello.length;
console.log("Длина строки до: ", beforeLength);  // 15
console.log("Длина строки после: ", afterLength);  // 10

Дополнительно есть ряд методов, которые удаляют пробелы с определенной стороны строки:

  • trimStart() удаляет пробел с начала строки
  • trimEnd() удаляет пробел с конца строки
  • trimLeft() удаляет пробел с левой части строки
  • trimRight() удаляет пробел с правой части строки

Объединение строк

Метод concat() объединяет две строки:

let hello = "Привет ";
let world = "мир";
hello = hello.concat(world);
console.log(hello);  // Привет мир

Замена подстроки

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

let hello = "Добрый день";
hello = hello.replace("день", "вечер");
console.log(hello);  // Добрый вечер

Первый параметр метода указывает, какую подстроку надо заменить, а второй параметр - на какую подстроку надо заменить. В то же время у этого метода есть одна особенность - он заменяет только первое вхождение подстроки:

let menu = "Завтрак: каша, чай. Обед: суп, чай. Ужин: салат, чай.";
menu = menu.replace("чай", "кофе");
console.log(menu);  // Завтрак: каша, кофе. Обед: суп, чай. Ужин: салат, чай.

Метод replaceAll() позволяет заменить все вхождения подстроки:

let menu = "Завтрак: каша, чай. Обед: суп, чай. Ужин: салат, чай.";
menu = menu.replaceAll("чай", "кофе");
console.log(menu);  // Завтрак: каша, кофе. Обед: суп, кофе. Ужин: салат, кофе.

Разделение строки

Метод split() разбивает строку на массив подстрок по определенному разделителю. В качестве разделителя используется строка, которая передается в метод. В данном случае строка разделяется по пробелу, то есть в итоге в массиве messageParts окажется четыре элемента:

const message = "Сегодня была прекрасная погода";
const messageParts = message.split(" ");
console.log(messageParts);  // ["Сегодня", "была", "прекрасная", "погода"]

Проверка начала и окончания строки

Метод startsWith() возвращает true, если строка начинается с определенной подстроки. Метод endsWith() возвращает true, если строка оканчивается на определенную подстроку.

const hello = "let me speak from my heart";
console.log(hello.startsWith("let"));  // true
console.log(hello.startsWith("Let"));  // false
console.log(hello.startsWith("lets"));  // false
console.log(hello.endsWith("heart"));  // true
console.log(hello.startsWith("bart"));  // false

При этом играет роль регистр символов, из примера выше мы видим, что let не эквивалентно Let. Дополнительный второй параметр позволяет указать индекс startsWith индекс с начала, для endsWith индекс с конца строки, относительно которого будет производиться сравнение:

const hello = "let me speak from my heart";
console.log(hello.startsWith("me", 4));  // true, "me" - 4 индекс с начала строки
console.log(hello.startsWith("my", hello.length-8));  // true, "my" - 8 индекс с конца

Зполнение строки

Методы padStart() и padEnd() растянуть строку на определенное количество символов и заполнить строку слева и справа соответственно:

let hello = "hello".padStart(8);  // "   hello"
console.log(hello);
hello = "hello".padEnd(8);  // "hello   "
console.log(hello);

Вызов "hello".padStart(8) будет рястягивать строку hello на 8 символов. То есть изначально в строке hello 5 символов, значит к ней будет добавлено 3 символа. При чем они будут добавлено в начале строки. По умолчанию добавляемые символы представляют пробелы. Аналогично вызов "hello".padEnd(8) растянет строку на 8 символов, но оставшие символы в виде пробелов будут добавлены в конец строки.

По умолчанию эти методы используют пробелы для заполнения, но в качестве второго параметра мы можем передать методам значение, которым надо дополнить строку:

let hello = "hello".padStart(17, "JavaScript, ");  // "JavaScript, hello"
hello = "hello".padEnd(12, " Eugene");  // "hello Eugene"

Если добавляемое количество символов больше добавляемой строки, то добавляемая строка повторяется:

let hello = "123".padStart(6, "0");  // "000123"
hello = "123".padEnd(6, "0");  // "123000"
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг