Строки и объект String
Oбъект String имеет большой набор свойств и методов, с помощью которых мы можем манипулировать строками.
Свойство length указывает на длину строки:
var hello = "привет мир";
console.log("В строке '" + hello + "' " + hello.length + " символов");
Метод repeat() позволяет создать строку путем
многократного повторения другой строки.
Количество повторов передается в качестве аргумента:
let hello = "hello "; console.log(hello.repeat(3)); // hello hello hello
Шаблоны строк
Шаблоны строк позволяют вставлять в строку различные значения. Для этого строки заключаются в косые кавычки:
let name = "Tom";
let hello = `Hello ${name}`;
console.log(hello); // Hello Tom
let age = 23;
let info = `${name} is ${age} years old`;
console.log(info); // Tom is 23 years old
Для вставки значения в строку оно заключается в фигурные скобки,
перед которыми ставится знак доллара.
Также вместо скалярных значений могут добавляться свойства сложных объектов или результаты выражений:
let tom ={
name: "Tom",
age: 25
}
let info = `${tom.name} is ${tom.age} years old`;
console.log(info); // Tom is 23 years old
function sum(x, y){
return x + y;
}
let a = 5, b = 4;
let result = `${a} + ${b} = ${sum(a, b)}`;
console.log(result); // 5 + 4 = 9
Поиск в строке
Для поиска в строки некоторой подстроки используются методы indexOf() (индекс первого вхождения подстроки) и lastIndexOf() (индекс последнего вхождения подстроки). Эти методы принимают два параметра:
- Подстроку, которую надо найти
- Необязательный параметр, который указывает, с какого символа следует проводить поиск подстроки в строке
let hello = "привет мир. пока мир";
let key = "мир";
let firstPos = hello.indexOf(key);
let lastPos = hello.lastIndexOf(key);
console.log("Первое вхождение: ", firstPos); // 7
console.log("Последнее вхождение: ", lastPos); // 17
Еще один метод - includes() возвращает true,
если строка содержит определенную подстроку.
let hello = "привет мир. пока мир";
console.log(hello.includes("мир")); // true
console.log(hello.includes("миг")); // false
С помощью второго дополнительного параметра можно
определить индекс, с которого будет начинаться поиск подстроки:
let hello = "привет мир. пока мир";
console.log(hello.includes("мир", 5)); // true
console.log(hello.includes("привет", 6)); // false
Выбор подстроки
Для того, чтобы вырезать из строки подстроку,
применяются методы substr() и substring().
Метод substring() принимает два параметра:
- индекс символа в строке, начиная с которого надо проводить обрезку строки
- индекс, до которого надо обрезать строку
let hello = "привет мир. пока мир"; let world = hello.substring(7, 10); // с 7-го по 10-й индекс console.log(world); // мирМетод substr() также в качестве первого параметра принимает начальный индекс подстроки, а в качестве второго - длину вырезаемой подстроки:
let hello = "привет мир. пока мир"; let bye = hello.substr(12, 4); console.log(bye); // покаЕсли второй параметр не указывается, то обрезается вся остальная часть строки:
let hello = "привет мир. пока мир"; let bye = hello.substr(12); console.log(bye); // пока мир
Управление регистром
Для изменения регистра имеются методы toLowerCase() (для перевода в нижний регистр) и toUpperCase() (для перевода в верхний регистр).
let hello = "Привет Том"; console.log(hello.toLowerCase()); // привет том console.log(hello.toUpperCase()); // ПРИВЕТ ТОМ
Получение символа по индексу
Чтобы получить определенный символ в строке по индексу, можно применять методы charAt() и charCodeAt(). Оба этих метода в качестве параметра принимают индекс символа:
let hello = "Привет Том"; console.log(hello.charAt(2)); // и console.log(hello.charCodeAt(2)); // 1080 Но если в качестве результата метод charAt() возвращает сам символ, то метод charCodeAt() возвращает числовой код этого символа.
Удаление пробелов
Для удаления начальных и концевых пробелов в стоке используется метод trim():
let hello = " Привет Том ";
let beforeLength = hello.length;
hello = hello.trim();
let afterLength = hello.length;
console.log("Длина строки до: ", beforeLength); // 15
console.log("Длина строки после: ", afterLength); // 10
Объединение строк
Метод concat() объединяет две строки:
let hello = "Привет "; let world = "мир"; hello = hello.concat(world); console.log(hello); // Привет мир
Замена подстроки
Метод replace() заменяет первое вхождение одной подстроки на другую:
let hello = "Добрый день";
hello = hello.replace("день", "вечер");
console.log(hello); // Добрый вечер
Первый параметр метода указывает, какую подстроку надо заменить,
а второй параметр - на какую подстроку надо заменить.
Разделение строки
Метод split() разбивает строку на массив подстрок по определенному разделителю. В качестве разделителя используется строка, которая передается в метод:
var message = "Сегодня была прекрасная погода";
var stringArray = message.split(" ");
for(var str in stringArray)
console.log(stringArray[str]);
Вывод браузера
Сегодня
была
прекрасная
погода
Проверка начала и окончания строки
Метод startsWith() возвращает true, если строка начинается с определенной подстроки. А метод endsWith() возвращает true, если строка оканчивается на определенную подстроку.
let 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
При этом играет роль регистр символов,
Дополнительный второй параметр позволяет указать индекс (для startsWith - индекс с начала, а для endsWith - индекс с конца строки), относительно которого будет производиться сравнение:
let 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 индекс с конца
Output