JS об'єкт String
Введення до об'єкта String
String
- це вбудований об'єкт у JavaScript, який представляє рядок символів. Рядки використовуються для зберігання текстових даних, що можуть бути відображені у текстовому форматі. На відміну від масивів, де кожен елемент зберігає одне значення, рядки зберігають послідовність символів.
Створення рядків
Існує кілька способів створити рядок в JavaScript. Один із них - використовувати літерали рядків:
const string1 = "Це рядок";
const string2 = 'Це теж рядок';
const string3 = `Це ще один рядок`;
Кожен з цих літералів представляє рядок. Вони можуть використовуватися взаємозамінно, але з `` можна виконувати інтерполяцію рядків - це коли ви вставляєте змінні безпосередньо в рядок. Наприклад:
const name = "Олексій";
const greetings = `Привіт, ${name}!`;
console.log(greetings); // Виведе: "Привіт, Олексій!"
Робота з рядками
Коли у вас є рядок, ви можете виконувати різноманітні операції: додавання рядків, доступ до окремих символів, пошук підрядків тощо.
Для додавання двох рядків можна використовувати оператор +
:
const string1 = "Привіт, ";
const string2 = "світе!";
console.log(string1 + string2); // Виведе: "Привіт, світе!"
Для доступу до конкретного символу в рядку можна використовувати метод charAt()
або квадратні дужки:
const text = "абрикос";
console.log(text.charAt(3)); // Виведе: "и"
console.log(text[3]); // Також виведе: "и"
Розширені можливості рядків
Рядки в JavaScript мають багато вбудованих методів, що допомагають виконувати різноманітні операції. Наприклад, метод substring()
дозволяє витягти підрядок з поточного рядка:
const word = "парасолька";
const text = word.substring(2, 8);
console.log(text); // Виведе: "расоль"
Інший корисний метод - indexOf()
, який повертає індекс першого входження підрядка:
const text = "Веселий, веселий день.";
console.log(text.indexOf("веселий")); // Виведе: 9
Операції з рядками
Рядки в JavaScript - це більше, ніж просто послідовності символів. Завдяки великій кількості методів, які надає об'єкт String
, можливо виконувати ряд сложних операцій з рядками.
Конкатенація рядків
Однією з основних операцій з рядками є їх об'єднання, або конкатенація. Це можна зробити за допомогою оператора +
:
const chunk1 = "Коли розум";
const chunk2 = " мовчить, говорить серце.";
const common = chunk1 + chunk2;
console.log(common); // Виведе: "Коли розум мовчить, говорить серце."
В цьому прикладі ми об'єднали два рядки, використовуючи оператор +
. Результат - новий рядок, який є комбінацією двох попередніх.
Доступ до символів
Щоб отримати доступ до конкретного символу в рядку, можна використовувати метод charAt()
або квадратні дужки:
const word = "циркуль";
console.log(word.charAt(4)); // Виведе: "у"
console.log(word[4]); // Також виведе: "у"
Тут ми отримали доступ до п'ятого символу в рядку (індексація починається з 0), використовуючи обидва доступних метода.
Пошук в рядку
Щоб знайти підрядок в межах більшого рядка, можна використовувати метод indexOf()
:
const sentence = "Сонце світить яскраво і високо.";
const position = sentence.indexOf("яскраво");
console.log(position); // Виведе: 11
У цьому прикладі ми шукали підрядок "яскраво" в рядку. Метод повернув позицію першого символу цього підрядка в більшому рядку.
Заміна підрядка
Щоб замінити частину рядка іншою стрічкою, можна використовувати метод replace()
:
const text = "Котик грає на гітарі.";
const new_text = text.replace("гітарі", "барабанах");
console.log(new_text); // Виведе: "Котик грає на барабанах."
Тут ми замінили підрядок "гітарі" на "барабанах", використовуючи метод replace()
.
Розбиття рядка
Щоб розбити рядок на масив підрядків за певним роздільником, можна використовувати метод split()
:
const phrase = "Яблуко, апельсин, банан";
const found = phrase.split(", ");
console.log(found); // Виведе: ["Яблуко", "апельсин", "банан"]
Тут ми розділили рядок на масив підрядків, використовуючи кому та пробіл як роздільники.
Порада: | Не змінюйте рядки напряму! Рядки в JavaScript є незмінними. Кожна операція, яка "змінює" рядок, насправді створює новий рядок. |
Порада: | Уникайте використання |
Нотатка: | Будьте обережні при порівнянні рядків. Оператори порівняння (
В цьому прикладі ми перетворили обидва рядки на нижній регістр перед порівнянням, щоб зробити їх незалежними від регістру. |
Нотатка: | Будьте уважні з локалізацією: Якщо ваша програма працює з різними мовами, використовуйте методи, які є чутливими до локалізації, такі як
В цьому прикладі ми використовуємо |
Синтаксис
let string = 'text';
let string = "text";
let string = `text`;
let string = new String("text");
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
3 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
Перетворення першої літери рядка в верхній регістр. Це корисно, наприклад, при форматуванні імен, або коли потрібно зробити текст більш читабельним.
У цьому прикладі метод charAt(0)
вибирає перший символ рядка, а toUpperCase()
перетворює його в верхній регістр. Метод slice(1)
видаляє перший символ з оригінального рядка, а потім ми об'єднуємо обидва рядки.
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
const name = "john";
const capitalizedName = capitalizeFirstLetter(name);
console.log(capitalizedName); // Виведе: "John"
Пошук підрядка в рядку та виведення контексту. Це може бути корисно, наприклад, при розробці пошукових функцій в текстових редакторах.
Метод indexOf()
знаходить позицію підрядка subStr
у рядку. Потім, використовуючи slice()
, ми вирізаємо частину рядка навколо знайденого підрядка, додаючи контекст.
function findSubstringContext(str, subStr, context = 5) {
const index = str.indexOf(subStr);
if (index === -1) return "Substring not found";
const start = Math.max(0, index - context);
const end = Math.min(str.length, index + subStr.length + context);
return str.slice(start, end);
}
const text = "The quick brown fox jumps over the lazy dog";
const context = findSubstringContext(text, "fox");
console.log(context); // Виведе: "quick brown fox jumps o"
Заміна заборонених слів в тексті на "зірочки". Це може бути корисно для автоматичної модерації тексту на форумах, у чатах тощо.
Тут ми використовуємо регулярні вирази (задані за допомогою RegExp
) для знаходження заборонених слів у рядку, незалежно від регістра (за допомогою прапорця "gi"). Метод replace()
замінює знайдені заборонені слова на рядок з "зірочок".
function censorText(text, forbiddenWords) {
let censoredText = text;
for (const word of forbiddenWords) {
const regex = new RegExp(word, "gi");
const replacement = '*'.repeat(word.length);
censoredText = censoredText.replace(regex, replacement);
}
return censoredText;
}
const comment = "This is a nasty comment with bad words.";
const forbidden = ["nasty", "bad"];
const censoredComment = censorText(comment, forbidden);
console.log(censoredComment); // Виведе: "This is a ***** comment with *** words."
Методи
toString()
- Перетворює об'єкт рядка на примітивний рядковий тип.
toLowerCase()
- Перетворює всі символи рядка на малі літери.
toUpperCase()
- Перетворює всі символи рядка на великі літери.
trim()
- Видаляє пробільні символи з початку та кінця рядка.
valueOf()
- Повертає примітивне значення рядка.
trimEnd()
- Видаляє пробільні символи з кінця рядка.
trimStart()
- Видаляє пробільні символи з початку рядка.
startsWith()
- Перевіряє, чи починається рядок зазначеним підрядком.
toLocaleUpperCase()
- Перетворює рядок у верхній регістр з урахуванням локалі.
substr()
- Витягує підрядок із рядка, починаючи з вказаної позиції та має вказану довжину.
toLocaleLowerCase()
- Перетворює всі символи рядка на нижній регістр, з урахуванням локальних особливостей мови.
substring()
- Витягує підрядок з рядка між двома вказаними індексами.
match()
- Здійснює пошук у рядку за допомогою регулярного виразу.
repeat()
- Створює новий рядок шляхом повторення існуючого рядка задану кількість разів.
search()
- Здійснює пошук заданого шаблону регулярного виразу в рядку.
padStart()
- Додає символи на початок рядка до досягнення заданої довжини, повертаючи новий рядок.
split()
- Перетворює рядок на масив підрядків, розділяючи його за вказаним роздільником.
replace()
- Замінює зазначений фрагмент у рядку на інший рядок або результат виконання функції.
padEnd()
- Перетворює рядок на вказану довжину, додаючи символи на кінець рядка.
concat()
- Об'єднує два або більше рядків, утворюючи новий рядок.
constructor()
- Створює новий рядковий об'єкт з вказаного значення.
slice()
- Виділяє та повертає підрядок із заданого рядка, використовуючи початковий та кінцевий індекси.
endsWith()
- Перевіряє, чи закінчується рядок певним підрядком.
includes()
- Провіряє, чи міститься заданий підрядок у вихідному рядку.
localeCompare()
- Порівнює рядок з іншим рядком, враховуючи локальні особливості мови.
fromCharCode()
- Перетворює набір числових кодів Unicode у відповідний рядок.
indexOf()
- Повертає індекс першого входження заданого підрядка в рядку.
lastIndexOf()
- Знаходить індекс останнього входження заданого підрядка в рядку.
at()
- Повертає символ за зазначеним індексом.
codePointAt()
- Повертає числове значення Unicode для символу, розташованого на вказаній позиції в рядку.
charAt()
- Повертає символ у рядку за вказаним індексом.
charCodeAt()
- Повертає числове значення Unicode для символу, що стоїть на вказаній позиції у рядку.
Властивості
prototype
- Створює та маніпулює рядками тексту в JavaScript.