JS Tower
JavaScript & TypeScriptМодуль 3: Строки и числа

Методы строк

Основные методы для работы со строками

Цель урока

В этом уроке ты научишься:

  • Искать подстроки
  • Изменять регистр и обрезать пробелы
  • Разбивать и объединять строки

Длина и доступ к символам

let str = "Привет";

console.log(str.length);    // 6
console.log(str[0]);        // "П"
console.log(str.at(-1));    // "т" (последний символ)
console.log(str.charAt(1)); // "р"

Неизменяемость

Строки нельзя изменить. Методы возвращают новую строку.


Поиск подстроки

includes, startsWith, endsWith

let text = "JavaScript — это круто";

console.log(text.includes("Script"));   // true
console.log(text.startsWith("Java"));   // true
console.log(text.endsWith("круто"));    // true

indexOf, lastIndexOf

let text = "Привет, мир! Привет!";

console.log(text.indexOf("Привет"));     // 0
console.log(text.lastIndexOf("Привет")); // 13
console.log(text.indexOf("Пока"));       // -1 (не найдено)

Извлечение подстроки

slice

let str = "JavaScript";

console.log(str.slice(0, 4));  // "Java"
console.log(str.slice(4));     // "Script"
console.log(str.slice(-6));    // "Script" (с конца)
console.log(str.slice(-6, -1)); // "Scrip"

substring

let str = "JavaScript";

console.log(str.substring(0, 4)); // "Java"
console.log(str.substring(4, 0)); // "Java" (меняет местами)

Рекомендация

Используй slice — он более предсказуем и поддерживает отрицательные индексы.


Изменение регистра

let str = "JavaScript";

console.log(str.toUpperCase()); // "JAVASCRIPT"
console.log(str.toLowerCase()); // "javascript"

Обрезка пробелов

let str = "   Привет, мир!   ";

console.log(str.trim());      // "Привет, мир!"
console.log(str.trimStart()); // "Привет, мир!   "
console.log(str.trimEnd());   // "   Привет, мир!"

Замена

replace

let str = "Привет, мир!";

console.log(str.replace("мир", "друг")); // "Привет, друг!"
console.log(str.replace("и", "!")); // "Пр!вет, мир!" (только первое)

replaceAll

let str = "Привет, мир! Привет!";

console.log(str.replaceAll("Привет", "Пока")); // "Пока, мир! Пока!"

Разбиение и объединение

split

let str = "яблоко,банан,апельсин";

console.log(str.split(","));    // ["яблоко", "банан", "апельсин"]
console.log(str.split(",", 2)); // ["яблоко", "банан"]
console.log("Привет".split("")); // ["П", "р", "и", "в", "е", "т"]

join (метод массива)

let arr = ["яблоко", "банан", "апельсин"];

console.log(arr.join(", "));  // "яблоко, банан, апельсин"
console.log(arr.join(" - ")); // "яблоко - банан - апельсин"
console.log(arr.join(""));    // "яблокобананапельсин"

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

padStart, padEnd

let num = "5";

console.log(num.padStart(3, "0")); // "005"
console.log(num.padEnd(3, "0"));   // "500"

// Форматирование времени
let hours = "9";
let minutes = "5";
console.log(hours.padStart(2, "0") + ":" + minutes.padStart(2, "0")); // "09:05"

Повторение

console.log("Ха".repeat(3)); // "ХаХаХа"
console.log("-".repeat(10)); // "----------"

Сводная таблица

МетодОписание
lengthДлина строки
includes()Содержит подстроку?
startsWith()Начинается с?
endsWith()Заканчивается на?
indexOf()Позиция первого вхождения
slice()Извлечь часть строки
toUpperCase()В верхний регистр
toLowerCase()В нижний регистр
trim()Убрать пробелы
replace()Заменить первое вхождение
replaceAll()Заменить все вхождения
split()Разбить в массив
padStart()Дополнить в начале
repeat()Повторить

Практика

Задание 1: Проверка email

Задача: Проверь, содержит ли строка символ @.

Запустите код для проверки
Loading...
Ваш вывод:
Ожидаемый результат:
true

Задание 2: Форматирование имени

Задача: Преобразуй "иВАН пЕТРОВ" в "Иван Петров".

Запустите код для проверки
Loading...
Ваш вывод:
Ожидаемый результат:
Иван Петров

Задание 3: Разбор URL

Задача: Извлеки домен из URL.

Запустите код для проверки
Loading...
Ваш вывод:
Ожидаемый результат:
www.example.com

Проверь себя

  1. Чем slice отличается от substring?
  2. Как заменить все вхождения подстроки?
  3. Как разбить строку на массив?