Строки и работа с текстом в 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! Попробуй придумать свои задачи: проверь, сколько раз встречается буква "а" в предложении, или составь программу, которая делает первую букву заглавной. Удачи в программировании!