Вы находитесь на странице: 1из 6

Строка (string)

Любые текстовые данные в JavaScript считаются строками.


Строка (string) в JavaScript должна быть заключена в кавычки.
В JavaScript существует три типа кавычек.

1. Двойные кавычки: "Hello".


2. Одинарные кавычки: „Hello‟.
3. Обратные кавычки: `Hello`.

Двойные или одинарные кавычки являются «простыми», между ними нет разницы в
JavaScript.

Обратные же кавычки имеют расширенную функциональность. Они позволяют нам


встраивать выражения в строку, заключая их в ${…}. Например:

let name = "world";

// Вставим переменную
alert( `Hello, ${name}!` ); // , Hello, world!
alert( “Hello, ${name}!” ); // , Hello, ${name}!

// Вставим выражение
alert( `результат: ${1 + 2}` ); // результат: 3

Выражение внутри ${…} вычисляется, и его результат становится частью строки.

Обычно при помощи плюса '+' складывают числа. Но если бинарный оператор '+' применить
к строкам, то он их объединяет в одну:

let s = "Hello" + "world!";


alert(s); // Helloworld

alert( '1' + 2 ); // "12"


alert( 2 + '1' ); // "21"
alert(2 + 2 + '1' ); // будет "41", а не "221"

Сложение и преобразование строк — это особенность бинарного плюса +. Другие


арифметические операторы работают только с числами и всегда преобразуют операнды в
числа.

Например, вычитание и деление:

alert( 6 - '2' ); // 4, '2' приводится к числу


alert( '6' / '2' ); // 3, оба операнда приводятся к числам

Строка (string) - это примитивный тип, но язык позволяет работать с ним так, будто он
является объектом. В том числе — использовать встроенные в JS методы строк.
Важно: при использовании методов создаѐтся новая строка, которая записывается в ту же
переменную вместо старой строки.
Как изменить регистр

toLowerCase

Преобразует символы в строке в нижний регистр.

"Hello world".toLowerCase(); // "hello world"

toUpperCase

Преобразует символы в строке в верхний регистр.

"Hello wolrd".toUpperCase(); // "HELLO WORLD"

Как объединить строки


concat

Объединяет две или более строки и возвращает одну строку.

"Hello".concat(" world"); // "Hello world"


"Hello".concat(" w", "o", "r", "l", "d","!"); // "Hello world!"

Как разделить строку на подстроки

split

Разбивает строку в массив по указанному разделителю, которым может быть подстрока или
регулярное выражение. Вторым параметром можно указать ограничитель.

// Получаем каждый символ


"Hello, world!".split(""); // ["H", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", "!"]

// Получаем каждое слово из строки


"Hello, world!".split(" "); //["Hello,", "world!"]

// Устанавливаем ограничитель
"Hello, world!".split(" ", 1); //["Hello,"]

join

Вызов arr.join(glue) делает в точности противоположное split. Он создаѐт строку из


элементов arr, вставляя glue между ними.

Например:

let arr = ['First', 'Second', 'Third'];


let str = arr.join(';'); // объединить массив в строку через запятую (';').
alert( str ); // First;Second;Third

let str1 = arr.join(' '); // объединить массив в строку через пробел (' ')
alert( str1 ); // First Second Third

Как повторить строку


repeat

Принимает в качестве параметра число и повторяет строку указанное количество раз.

"Students,".repeat(3); // "Students, Students, Students,"

Как найти подстроку

charAt(index)

Возвращает символ по указанному индексу, по умолчанию индекс равен 0 (при отсутствии


индекса).

"Hello, students".charAt(); // "H"


"Hello, students".charAt(7); // "s"

includes

Проверяет, содержит ли строка указанную подстроку. Возвращает значение true или false.
Вторым параметром можно указать позицию в строке, с которой следует начать поиск.

"Hello, students".includes("students"); // true


"Hello, students".includes("Hello", 1); // false

indexOf
Возвращает индекс первого найденного вхождения указанного значения. Поиск ведѐтся от
начала до конца строки. Если совпадений нет, возвращает -1. Вторым параметром можно
передать позицию, с которой следует начать поиск.
"Hello World".indexOf("o"); // 4
"Hello World".indexOf("o", 5); // 7

lastIndexOf
Возвращает индекс последнего найденного вхождения указанного значения. Поиск ведѐтся
от конца к началу строки. Если совпадений нет, возвращает -1. Вторым параметром можно
передать позицию, с которой следует начать поиск.
"Hello World".lastIndexOf("o"); // 7
"Hello World".lastIndexOf("o", 5); // 4
endsWith

Проверяет, заканчивается ли строка символами, заданными первым параметром. Возвращает


true или false. Есть второй необязательный параметр — ограничитель по диапазону поиска.
По умолчанию он равен длине строки.

"Hello, students".endsWith("students"); // true


"Hello, students".endsWith("students", 12); // false

startsWith

Проверяет, начинается ли строка с указанных символов. Возвращает true или false. Вторым
параметром можно указать индекс, с которого следует начать проверку.

"Hello, students".startsWith("Hello"); // true


"Hello, students".startsWith("Hello", 1); // false

search

Проверяет, есть ли в строке указанное значение или регулярное выражение и возвращает


индекс начала совпадения. Если совпадений нет, возвращает -1.

"hi, hello, hey".search("hello"); // 4

Как извлечь подстроку


slice

Извлекает часть строки и возвращает новую строку. Обязательный параметр — начало


извлечения. Вторым параметром можно установить границу (по умолчанию — до конца
строки).

"There are four seasons in a year".slice(15); // " seasons in a year"


"There are four seasons in a year".slice(15, 22); // "seasons"

// Отрицательные значения тоже работают


"There are four seasons in a year".slice(-17); // " seasons in a year"
"There are four seasons in a year".slice(-17, -10); // "seasons"

substring
Извлекает символы из строки между двумя указанными индексами. Второй индекс указывать не
обязательно. В таком случае будут извлечены все символы от начала до конца строки. В отличие от
slice, можно задавать start больше, чем end. Отрицательные значения не поддерживаются, они
интерпретируются как 0.

"There are four seasons in a year".substring(6); // "are four seasons in a year"


"There are four seasons in a year".substring(6,14); // "are four"
"There are four seasons in a year".substring(14,6); // "are four"
substr
Извлекает часть строки указанной длины. Первым параметром принимает стартовую позицию,
вторым — длину. Значение первого параметра может быть отрицательным, тогда позиция
определяется с конца строки.

"There are four seasons in a year".substr(6,8); // "are four"


"There are four seasons in a year".substr(14,8); // "seasons"

Как заменить подстроку

replace

Ищет в строке указанное значение или регулярное выражение и возвращает новую строку, в
которой выполнена замена на второй параметр. Можно заменить найденные значения
другой строкой или передать функцию для работы над совпадениями.

"hi, hello, hi".replace("hi", "hey"); // "hey, hello, hi"


"hi, hello, hi".replace(/hi/g, "hey"); // "hey, hello, hey"

replaceAll

Даѐт такой же результат, как метод replace() с глобальным флагом g. Заменяет все найденные
совпадения другой строкой или переданной функцией.

"hi, hello, hi".replaceAll("hi", "hey"); // "hey, hello, hey"

Как добавить в строку пробелы или другие символы

padEnd

Добавляет в конце отступы, пока строка не достигнет длины, заданной первым параметром.
Вторым параметром можно указать другой символ вместо пробела.

"four seasons".padEnd(20, "*"); // "four seasons********"

padStart

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

"four seasons".padStart(20, "*"); // "********four seasons"


Как удалить пробелы в строке

trim

Обрезает пробелы с обоих концов строки.

" There are four seasons in a year ".trim(); // "There are four seasons in a year"

trimEnd

Обрезает пробелы в конце строки

" There are four seasons in a year ".trimEnd(); // " There are four seasons in a year"

trimStart

Обрезает пробелы в начале строки

" There are four seasons in a year ".trimStart(); // "There are four seasons in a year "

Как работать с Юникодом


charCodeAt
Возвращает числовое значение Юникода по указанному индексу. Обратите внимание: у букв
в верхнем и нижнем регистрах разные коды.
"A".charCodeAt() // 65
"a".charCodeAt() // 97
"Ա".charCodeAt() // 1329
"ա".charCodeAt() // 1377
fromCharCode
Преобразует числовые значения Юникода в читаемые символы.
String.fromCharCode(72, 101, 108, 108, 111); // "Hello"

Примечание: при работе с эмодзи, редкими математическими символами, иероглифами


нужно помнить о суррогатных парах. Это символы, которые записываются двумя 16-
битными словами. Длина таких строк — 2.
Суррогатные пары не учитывались при создании JS и методы строк charCodeAt /
fromCharCode обрабатывают их некорректно. Правильно работают с суррогатными парами
редкие методы String.fromCodePoint и str.codePointAt, которые появились в языке недавно.
Для работы со строками в JS есть не только встроенные методы, но и сторонние библиотеки.
Они решают задачи более сложные задачи. Но подключать их имеет смысл только в том
случае, если возможностей встроенных методов действительно не хватает.

Вам также может понравиться