JavaScript виконання коду JavaScript підключення зовнішнього файлу JavaScript console.log JavaScript змінні і константи JavaScript типи даних JavaScript операції зі змінними JavaScript перетворення даних JavaScript масиви JavaScript умовні конструкції JavaScript цикли JavaScript функції JavaScript область видимості змінних JavaScript замикання і функції IIFE JavaScript Паттерн Модуль JavaScript рекурсивні функції JavaScript перевизначення функцій JavaScript hoisting JavaScript передача параметрів за значенням і за посиланням JavaScript стрілочні функції JavaScript ООП Object JavaScript ООП вкладені об'єкти і масиви в об'єктах JavaScript ООП перевірка наявності і перебір методів і властивостей JavaScript ООП об'єкти у функціях JavaScript ООП конструктори об'єктів JavaScript ООП розширення об'єктів. prototype JavaScript ООП інкапсуляція JavaScript ООП Функція як об'єкт. Методи call і apply JavaScript ООП спадкування JavaScript ООП Ключове слово this JavaScript ООП Object destructuring JavaScript ООП класи JavaScript ООП Date. Робота з датами JavaScript Об'єкт Math. математичні операції JavaScript Об'єкт Array. Робота з масивами JavaScript ООП об'єкт Number JavaScript String JavaScript String Об'єкт RegExp. Регулярні вирази JavaScript String Регулярні вирази в методах String JavaScript String Синтаксис регулярних виразів JavaScript Робота з браузером і BOM JavaScript діалогові вікна JavaScript Історія браузера. об'єкт history JavaScript об'єкт location JavaScript об'єкт navigator JavaScript таймери JavaScript DOM Введення JavaScript DOM Об'єкт document. Пошук елементів JavaScript DOM Властивості об'єкта document JavaScript DOM Об'єкт Node. Навігація по DOM JavaScript DOM Створення, додавання і видалення елементів веб-сторінки JavaScript DOM Об'єкт Element. управління елементами JavaScript DOM Зміна стилю елементів JavaScript події. Введення в обробку подій. JavaScript події обробники JavaScript події. об'єкт Event JavaScript події. поширення подій JavaScript події миші JavaScript події клавіатури JavaScript FORMS. Форми і їх елементи JavaScript FORMS. Кнопки JavaScript FORMS. текстові поля JavaScript FORMS. Прапорці та перемикачі JavaScript FORMS. Список select JavaScript JSON JavaScript зберігання даних. cookie JavaScript зберігання даних. Web Storage JavaScript Collection. Ітератори JavaScript Collection. Генератори JavaScript Collection. Множина Set JavaScript Collection. Map JavaScript Collection. WeakSet і WeakMap JavaScript AJAX. XMLHttpRequest JavaScript AJAX. Відправка даних JavaScript AJAX. Promise в Ajax-запитах

JavaScript String


Рядки і об'єкт String

Для створення рядків ми можемо як безпосередньо привласнювати змінній рядок:

let name = "Tom";

Для роботи з рядками призначений об'єкт String , тому також можна використовувати конструктор String :

var name = new String("Tom");

Але як правило, використовується перший більш короткий спосіб. У першому випадку JavaScript при необхідності автоматично перетворює змінну примітивного типу в об'єкт String .

Об'єкт String має великий набір властивостей і методів, за допомогою яких ми можемо маніпулювати рядками.

Властивість length вказує на довжину рядка:

var hello = "Hello World!";
console.log("В рядку '" + hello + "' " + hello.length + " символів");

Метод repeat() дозволяє створити рядок шляхом багаторазового повторення іншого рядка. Кількість повторів приймаєся в якості аргументу:

let hello = "hello ";
console.log(hello.repeat(3));   // hello hello hello

Шаблони рядків

Шаблони рядків дозволяють вставляти в рядок різні значення.

let name = "Tom";
let hello = `Hello ${name}`;
console.log(hello);     // Hello Tom
 
let age = 23;
let info = `${name} is ${age} years old`;
console.log(info);      // Tom is 23 years old

Для вставки значення в рядок потрібно записати змінну в фігурні дужки, перед якими ставиться знак долара $ наприклад:

`${name} is ${age} years old`

Також замість скалярних значень можуть додаватися властивості складних об'єктів або результати виразів:

let tom ={
    name: "Tom",
    age: 25
}

let info = `${tom.name} is ${tom.age} years old`;
console.log(info);  // Tom is 23 years old
 
function sum(x, y){
    return x + y;
}

let a = 5, b = 4;

let result = `${a} + ${b} = ${sum(a, b)}`;
console.log(result);    // 5 + 4 = 9

Пошук в рядку

Для пошуку в рядку деякого підрядка використовуються методи indexOf() (індекс першого входження підрядка) і lastIndexOf() (індекс останнього входження підрядка). Ці методи приймають два параметра:

  • Підрядок, який треба знайти

  • Необов'язковий параметр, який вказує, з якого символу слід проводити пошук підрядка в рядку

Обидва ці методи повертають індекс символу, з якого в рядку починається підрядок. Якщо підрядок не знайдено, то повертається число -1.

let hello = "Hello World. Hi World";
let key = "World";
let firstPos = hello.indexOf(key);
let lastPos = hello.lastIndexOf(key);
console.log("first: ", firstPos);    // 6
console.log("last: ", lastPos);  // 16

Ще один метод - includes() повертає true , якщо рядок містить певний підрядок.

let hello = "Hello world";
 
console.log(hello.includes("world")); // true
console.log(hello.includes("words")); // false

За допомогою другого додаткового параметра можна визначити індекс, з якого буде починатися пошук підрядка:

let hello = "Hello World. Hi World";
 
console.log(hello.includes("World", 5));  // true
console.log(hello.includes("hello", 6));   // false

вибір підстроки

Для того, щоб вирізати з рядка підрядок, застосовуються методи substr () і substring () .

Метод substring () приймає два параметри:

  • індекс символу в рядку, з якого треба починати робити обрізку рядка

  • індекс, до якого треба обрізати рядок

let hello = "Hello World. Hi World";
let world = hello.substring(6, 11); // from 6 to 11 index
console.log(world);                 // World

Метод substr() також в якості першого параметра приймає початковий індекс підрядка, а в якості другого - довжину вирізаючого підрядка:

let hello = "Hello World. Hi World";
let hi = hello.substr(12, 4);
console.log(hi);                    // Hi

Якщо другий параметр не вказується, то обрізається вся інша частина рядка:

let hello = "Hello World. Hi World";
let hi = hello.substr(12);
console.log(hi);                    //  Hi World

управління регістром

Для зміни регістру є методи toLowerCase ()   (для перетворення в нижній регістр) і toUpperCase ()   (для перетворення в верхній регістр).

let hello = "Hello World. Hi World";
console.log(hello.toLowerCase());      // hello world. hi world
console.log(hello.toUpperCase());      // HELLO WORLD. HI WORLD

Отримання символу за індексом

Щоб отримати певний символ в рядку за індексом, можна застосовувати методи charAt () і charCodeAt () . Обидва ці методи в якості параметра приймають індекс символу:

let hello = "Hello World. Hi World";
console.log(hello.charAt(2));       // l
console.log(hello.charCodeAt(2));   // 108

Але якщо в якості результату метод charAt() повертає сам символ, то метод charCodeAt() повертає числовий код цього символу.


видалення пробілів

Для видалення початкових і кінцевих пробілів в стоці використовується метод trim () :

let hello = "   Hello World. Hi World  ";
let beforeLength = hello.length;
hello = hello.trim();
let afterLength = hello.length;
    
console.log("length before: ", beforeLength);     // 26
console.log("length after: ",  afterLength);      // 21

Обєднання строк

Метод concat () об'єднує два рядки:

let hello = "Hello ";
let world = "world";
hello = hello.concat(world);
console.log(hello);            // Hello world

заміна підрядка

Метод replace () замінює перше входження одного підрядка на інший:

let hello = "Hello World";
hello = hello.replace("World", "site4study.com");
console.log(hello);                                // Hello site4study.com

Перший параметр методу вказує, яку підстроку треба замінити, а другий параметр - на яку підстроку треба замінити.


поділ рядки

Метод split () розбиває рядок на масив підрядків за певним роздільником. Як роздільник використовується рядок, який передається в метод:

var message = "Hello World. Hi World";
var stringArray = message.split(" ");

for (var str in stringArray) {
    console.log(stringArray[str]);
}

Результат браузера


Перевірка початку і закінчення рядка

Метод startsWith () повертає true , якщо рядок починається з певного підрядка. А метод endsWith () повертає true , якщо рядок закінчується на певний підрядок.

let hello = "let me speak from my heart";

console.log(hello.startsWith("let"));       // true
console.log(hello.startsWith("Let"));       // false
console.log(hello.startsWith("lets"));      // false
 
console.log(hello.endsWith("heart"));       // true
console.log(hello.startsWith("bart"));      // false

При цьому грає роль регістр символів, і з прикладу вище ми бачимо, що " let " не еквівалентне " Let ".

Додатковий другий параметр дозволяє вказати індекс (для startsWith - індекс з початку, а для endsWith - індекс з кінця рядка), щодо якого буде здійснюватися порівняння:

let hello = "let me speak from my heart";
console.log(hello.startsWith("me", 4));     // true, "me" - 4 індекс з початку рядка
 
console.log(hello.startsWith("my", hello.length - 8));    // true, "my" - 8 індекс з кінця

Наш партнер:
beta test mp3 playlist downloader