Skip to main content

Строки

В JavaScript любые текстовые данные являются строками. Внутренний формат для строк — всегда UTF-16, вне зависимости от кодировки страницы.

Кавычки

let single = 'single-quoted';
let double = "double-quoted";
let backticks = `backticks`;

Спецсимволы

СимволОписание
\nПеревод строки
\rВ текстовых файлах Windows для перевода строки используется комбинация символов \r\n, а на других ОС это просто \n. Это так по историческим причинам, ПО под Windows обычно понимает и просто \n.
\', \", \`Кавычки
\\Обратный слеш
\tЗнак табуляции
\b, \f, \vBackspace, Form Feed и Vertical Tab — оставлены для обратной совместимости, сейчас не используются.

Длина строки

💥 length — это числовое свойство, а не функция, добавлять скобки не нужно.

Доступ к символам

let str = `Hello`;

// получаем первый символ
alert( str[0] ); // H
alert( str.at(0) ); // H

// получаем последний символ
alert( str[str.length - 1] ); // o
alert( str.at(-1) ); // o

Также можно перебрать строку посимвольно, используя for..of:

Строки неизменяемы

Можно создать новую строку и записать её в ту же самую переменную вместо старой.

Поиск подстроки

str.indexOf - Он ищет подстроку substr в строке str, начиная с позиции pos, и возвращает позицию, на которой располагается совпадение, либо -1 при отсутствии совпадений.

let str = 'Widget with id';

alert( str.indexOf('Widget') ); // 0, потому что подстрока 'Widget' найдена в начале
alert( str.indexOf('widget') ); // -1, совпадений нет, поиск чувствителен к регистру

alert( str.indexOf("id") ); // 1, подстрока "id" найдена на позиции 1 (..idget with id)

💥 str.lastIndexOf(substr, position) - ищет с конца строки к её началу

includes - если нам необходимо проверить, есть ли совпадение, но позиция не нужна.

alert( "Widget with id".includes("Widget") ); // true
alert( "Hello".includes("Bye") ); // false

startsWith, endsWith - начинается ли, заканчивается ли строка определённой строкой

alert( "Widget".startsWith("Wid") ); // true, "Wid" — начало "Widget"
alert( "Widget".endsWith("get") ); // true, "get" — окончание "Widget"

Получение подстроки

В JavaScript есть 3 метода для получения подстроки: substring, substr и slice Из двух других вариантов, slice более гибок, он поддерживает отрицательные аргументы, и его короче писать. Так что, в принципе, можно запомнить только его.

str.slice(start [, end]) // возвращает часть строки от start до (не включая) end.
str.substring(start [, end]) // возвращает часть строки между start и end (не включая) end.
str.substr(start [, length]) // - возвращает часть строки от start длины length.

Сравнение строк

строки сравниваются посимвольно в алфавитном порядке.

  1. Строчные буквы больше заглавных 'a' > 'Z'
  2. Буквы, имеющие диакритические знаки, идут «не по порядку» 'Österreich' > 'Zealand'

Правильное сравнение

«Правильный» алгоритм сравнения строк сложнее, чем может показаться, так как разные языки используют разные алфавиты. К счастью, все современные браузеры (для IE10− нужна дополнительная библиотека Intl.JS) поддерживают стандарт ECMA 402, обеспечивающий правильное сравнение строк на разных языках с учётом их правил.

Для этого есть соответствующий метод.

Вызов str.localeCompare(str2) возвращает число, которое показывает, какая строка больше в соответствии с правилами языка:

  • Отрицательное число, если str меньше str2.
  • Положительное число, если str больше str2.
  • 0, если строки равны.

🚀 Источник: https://learn.javascript.ru/string