Перейти к содержанию

Работа с текстом: строки и регулярные выражения

Начало урока

Работа с текстом: строки и регулярные выражения

Разрезай, ищи, разделяй и находи по шаблону - стань мастером текста в Node.

Главная идея: почти всё, с чем работает программа, - это текст: имена, которые печатают люди, строки из файла, JSON от API, команды из терминала. Строка - это то, как Node хранит текст, и Node даёт целый набор методов строк (плюс язык шаблонов - регулярные выражения), чтобы резать, чистить и искать в тексте.
К концу урока вы сможете:
  • измерять строку и читать отдельные символы по их позиции,
  • вырезать кусок строки и искать внутри неё,
  • менять регистр, убирать пробелы, разделять и склеивать текст,
  • аккуратно собирать строки с помощью шаблонных литералов,
  • заменять текст и написать первое регулярное выражение для поиска и проверки шаблонов.

1. Что такое строка?

Строка - это кусочек текста: слово, предложение, подпись или даже пустая ''. Её пишут, оборачивая символы в одинарные кавычки, двойные кавычки или обратные кавычки:

const name = 'Ada';
const city = "Lovelace City";
const greeting = `Hello there`;

Аналогия. Представьте строку как бусы из бисера. Каждая бусина - один символ, и бусины идут в строгом порядке. Можно посчитать бусины, посмотреть на третью или взять кусок нити, но нельзя заменить одну бусину на месте, потому что в JavaScript строки неизменяемы (только для чтения). Любое "изменение" на самом деле создаёт совершенно новую строку.

Строки встречаются всюду в предыдущих темах курса: текст, который вы читаете модулем fs, ключи и значения внутри JSON, аргументы из process.argv в CLI - всё это строки. Освоив строки, вы упростите себе всё это.

2. Длина и позиция (индексы)

Каждая строка знает свою длину через .length, а у каждого символа есть позиция, которую называют индексом. Вот главный сюрприз для новичков: счёт начинается с 0, а не с 1.

"HELLO".length равно 5 H E L L O 0 1 2 3 4 slice(1, 4) оставляет оранжевые клетки -> "ELL"
Каждая буква стоит на своём индексе. Первый индекс - 0, поэтому последний индекс - это длина минус 1.
const word = 'HELLO';
console.log(word.length);   // 5
console.log(word[0]);       // "H"  (первый символ)
console.log(word[4]);       // "O"  (последний символ)
console.log(word[word.length - 1]); // "O" (надёжный способ взять последний)
console.log(word[99]);      // undefined (там нет бусины)

Поскольку последний правильный индекс - это length - 1, слово "HELLO" (длина 5) использует индексы 0, 1, 2, 3, 4. Запрос индекса 5 или больше даёт undefined.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя