⚡ JavaScript

Строки и работа с текстом в JavaScript (Node.js): подробное руководство

Строки и работа с текстом в JavaScript

Введение: Зачем нам работать с текстом?

Представь, что ты пишешь сообщение другу, создаешь название для новой игры или анализируешь текст песни. В программировании любой текст называется строкой (string). Строки — это последовательность символов: буквы, цифры, пробелы, знаки препинания. Умение работать со строками позволяет создавать крутые программы: от проверки паролей до обработки целых статей!

Основной синтаксис

Строки в JavaScript создаются с помощью кавычек:

let имя = "Алиса";
let приветствие = 'Привет, мир!';
let текст = `Можно использовать и обратные кавычки`;

Чтобы получить данные от пользователя (в Node.js), используем специальную библиотеку readline. Вот как это работает:

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('Введите текст: ', (answer) => {
    console.log('Вы ввели: ' + answer);
    rl.close();
});

Основные операции со строками

Вот самые полезные команды для работы с текстом:

  • Длина строки — строка.length (сколько символов)
  • Извлечение части — строка.slice(начало, конец)
  • Поиск — строка.includes("что ищем") (есть ли слово)
  • Разделение на слова — строка.split(" ")
  • Регистр — строка.toUpperCase() и строка.toLowerCase()
  • Удаление пробелов — строка.trim()

Пример — узнаем длину строки:

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('Введите название NFT: ', (name) => {
    console.log('Длина названия: ' + name.length + ' символов');
    rl.close();
});

Разбор типичных задач

Задача 1. Анализ названия NFT

Ты создал название токена, но хочешь проверить, не слишком ли оно длинное (больше 20 символов) и начинается ли с буквы "S".

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('Введите название NFT: ', (name) => {
    if (name.length > 20) {
        console.log('Название слишком длинное!');
    } else {
        console.log('Название подходит по длине.');
    }
    if (name.startsWith('S')) {
        console.log('Название начинается с буквы S.');
    } else {
        console.log('Название не начинается с S.');
    }
    rl.close();
});

Задача 2. Обрезка хештега

У тебя есть длинный хештег, нужно взять только первые 10 символов.

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('Введите хештег: ', (hashtag) => {
    let shortHashtag = hashtag.slice(0, 10);
    console.log('Короткая версия: ' + shortHashtag);
    rl.close();
});

Задача 3. Подсчет слов в песне

Дан текст песни, нужно посчитать количество слов. Слова разделены пробелами.

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('Введите текст песни: ', (song) => {
    let words = song.split(' ');
    let count = words.length;
    console.log('Количество слов: ' + count);
    rl.close();
});

Задача 4. Получение заключительной части статьи

Нужно взять последние 50 символов статьи (заключение).

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('Введите текст статьи: ', (article) => {
    let conclusion = article.slice(-50);
    console.log('Заключение: ' + conclusion);
    rl.close();
});

Задача 5. Переворот строки

Напишем фразу задом наперед, чтобы удивить подписчиков.

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('Введите фразу: ', (phrase) => {
    let reversed = phrase.split('').reverse().join('');
    console.log('Перевернутая фраза: ' + reversed);
    rl.close();
});

Частые ошибки новичков

  • Забывают про пробелы: "Привет мир".split('') разделит по буквам, а .split(' ') — по словам.
  • Путают длину и индексы: в строке "Кот" длина 3, но последний символ под индексом 2 (отсчет с нуля).
  • Не используют trim(): если пользователь ввел " привет ", то .length покажет 9, а не 6.
  • Сравнивают строки неправильно: "яблоко" > "груша" — это сравнение по алфавиту, а не по длине.

Итоговый пример: проверка пароля

Представь, что ты создаешь сайт и хочешь проверить, подходит ли пароль. Правила: минимум 8 символов, содержит "@" и заканчивается на "!".

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('Придумайте пароль: ', (password) => {
    let errors = [];
    if (password.length < 8) {
        errors.push('Пароль должен быть длиннее 8 символов');
    }
    if (!password.includes('@')) {
        errors.push('Пароль должен содержать @');
    }
    if (!password.endsWith('!')) {
        errors.push('Пароль должен заканчиваться на !');
    }
    if (errors.length === 0) {
        console.log('✅ Пароль подходит!');
    } else {
        console.log('❌ Ошибки:');
        errors.forEach(error => console.log(' - ' + error));
    }
    rl.close();
});

Теперь ты знаешь, как работать с текстом в JavaScript! Попробуй придумать свои задачи: проверь, сколько раз встречается буква "а" в предложении, или составь программу, которая делает первую букву заглавной. Удачи в программировании!