Работа с текстом: строки и регулярные выражения
Разрезай, ищи, разделяй и находи по шаблону - стань мастером текста в Node.
- измерять строку и читать отдельные символы по их позиции,
- вырезать кусок строки и искать внутри неё,
- менять регистр, убирать пробелы, разделять и склеивать текст,
- аккуратно собирать строки с помощью шаблонных литералов,
- заменять текст и написать первое регулярное выражение для поиска и проверки шаблонов.
1. Что такое строка?
Строка - это кусочек текста: слово, предложение, подпись или даже пустая ''. Её пишут, оборачивая символы в одинарные кавычки, двойные кавычки или обратные кавычки:
const name = 'Ada';
const city = "Lovelace City";
const greeting = `Hello there`;
Аналогия. Представьте строку как бусы из бисера. Каждая бусина - один символ, и бусины идут в строгом порядке. Можно посчитать бусины, посмотреть на третью или взять кусок нити, но нельзя заменить одну бусину на месте, потому что в JavaScript строки неизменяемы (только для чтения). Любое "изменение" на самом деле создаёт совершенно новую строку.
Строки встречаются всюду в предыдущих темах курса: текст, который вы читаете модулем fs, ключи и значения внутри JSON, аргументы из process.argv в CLI - всё это строки. Освоив строки, вы упростите себе всё это.
2. Длина и позиция (индексы)
Каждая строка знает свою длину через .length, а у каждого символа есть позиция, которую называют индексом. Вот главный сюрприз для новичков: счёт начинается с 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.