String.prototype.includes()
Метод includes() проверяет, содержит ли строка заданную подстроку, и возвращает, соответственно true или false .
Синтаксис
Параметры
Строка для поиска в данной строке.
Позиция в строке, с которой начинать поиск строки searchString , по умолчанию 0.
Возвращаемое значение
true , если искомая строка была найдена в данной строке; иначе false .
Описание
Этот метод позволяет вам определять, содержит ли строка другую строку.
Чувствительность к регистру символов
Метод includes() является регистрозависимым. Например, следующее выражение вернёт false :
Примеры
Использование includes()
Полифил
Этот метод был добавлен в спецификации ECMAScript 2015 и может быть недоступен в некоторых реализациях JavaScript. Однако, можно легко эмулировать этот метод:
Спецификации
| Specification |
|---|
| ECMAScript Language Specification # sec-string.prototype.includes |
Поддержка браузерами
BCD tables only load in the browser
String.prototype.contains
В Firefox с версии 18 по версию 39, этот метод назывался «contains». Он был переименован в «includes» в замечании баг 1102219 по следующей причине:
Работа со строками в JavaScript
Умение работать со строковыми переменными в javascript является обязательным условием при написании даже небольших скриптов. Рассмотрим базовые операции на простых примерах.
Объединение

Рассмотрим основные аспекты, связанные с объединением строк и строковых переменных.
Вместо одинарных кавычек можно использовать двойные. Кроме этого, кавычки внутри строки можно экранировать обратным слешем.
Применяется в JavaScript и ещё один тип кавычек — обратные. Их использование позволяет размещать переменные прямо внутри строки.
Ещё один способ объединения — использовать функцию « concat ».
Здесь в переменную « s3 », будет присваиваться значение переменной « s1 », объедененное с пробелом, « s2 » и восклицательным знаком. Важно, значение « s1 » не изменится.
Подсчет символов
Для подсчета количества символов используйте метод « length ».

Проверка на тип и пустоту
Как проверить, содержит ли переменная строку.
Проверка на пустоту:
Поиск в строке
Чтобы определить вхождение слова или символа в строку, используйте функцию « indexOf ». Она возвращает позицию найденной подстроки или « -1 », если ничего не найдено.
Возможен поиск по регулярному выражению. Попробуем найти в строке число, хотя точно не знаем, есть оно или нет.

Переменная « Regex » содержит регулярное выражение, со специальным правилом для поиска. В данном примере конструкция « (\d+) » обозначает последовательность цифр. В качестве результата возвращается массив со всеми найденными элементами. Если убрать директиву « g », то в результат попадет только первый найденный элемент.
Регулярные выражения в js — это отдельная тема. Частично можете ознакомиться с ними из статьи по валидации полей.
Замены в строке

Простой способ замены слова в строке:
Недостаток: будет заменено только первое найденное совпадение.
Замена всех совпадений:
Флаг « g » указывает на то, что регулярное выражение должно проверять все возможные сопоставления. Директива « i » указывает на поиск без учета регистра. То есть, слово « World » тоже будет заменено.
Этот же способ применим для замены года. Регулярное выражение укажем сразу внутри функции.
Работа с подстроками
Рассмотрим функции для работы с подстроками.
slice(start, [end]) — возвращает символы, между конкретных позиций.
Если второй параметр не указан, то вернет всё до конца строки.
substring(start, [end]) — работает аналогично. Отличие от « slice » в 2 моментах. Если стартовое значение больше конечного, то первая функция вернет пустую строку.
Ещё различие в подходе при неверных параметрах.

Функция « slice() » конвертирует отрицательные значения в положительные, отталкиваясь от длины строки, а « substring() » просто устанавливает их в ноль, поэтому возвращает пустую строку.
substr(start, [length]) — возвращает подстроку, начиная с определенной позиции и определенной длины.
Разбиение на массив

Преобразование строки в массив. В качестве параметра указывается разделитель, в нашем случае это пробел.
Обратная функция « join ».
В совокупности функции позволяют быстро конвертировать строку в массив, произвести с каждым элементом манипуляции и возвратить обратно строку. Например, вот как быстро можно обернуть каждый символ строки в тег span :
В примере используется синтаксис ECMAScript 6, может не поддерживаться устаревшими браузерами.
Строки в JavaScript. Методы объекта String

В этой статье разберём как создавать строки в JavaScript. Изучим основные методы для работы с ними, а также рассмотрим, как происходит их сравнение.
Что такое строка?
Строка ( String ) — это тип данных в JavaScript для представления произвольной последовательности символов.
В JavaScript для строк всегда используется кодировка UTF-16. Она не зависит от того, какая кодировка установлена для HTML-страницы.
Создание строки осуществляется очень просто. Для этого необходимо просто нужные символы поместить между :
- одинарными кавычками ‘ ;
- двойными кавычками » ;
- обратными кавычками ` .
В приведенном выше примере у нас три строки, назначенные разным переменным. Чтобы убедиться, что это все строки, мы можем проверить тип переменной:
Важно знать, что строки в JavaScript неизменяемы . Это значит, что после создания строки, её содержимое изменить нельзя:
Как видите, изменить строку нам не удалось. Чтобы это сделать, нам нужно просто создать новую строку и, например, присвоить её той же самой переменной:
Строка может не содержать ни одного символа:
Такие строки называют пустыми .
Конкатенация строк
В этом примере между строками, содержащихся в переменных firstName и lastName , мы добавили пробел ( ‘ ‘ ).
Другой способ сложения строк в JavaScript — это использовать метод concat() :
В JavaScript вы также можете использовать шаблонные строки для конкатенации строк:
Шаблонные строки
Как мы отмечали выше, шаблонные строки — это способ создания строк с помощью обратных кавычек ( ` ). Они появились в языке существенно позже, чем обычные строки и имеют в отличие от них ряд дополнительных возможностей.
1. Шаблонную строку, в отличие от обычной строки, можно располагать на нескольких строчках :
Для создания многострочных строк с помощью одинарных и двойных кавычек, нужно использовать символ перевода строки ( \n ):
Расположить такую строку на нескольких строках можно только с использованием оператора + :
2. Ещё одно отличие шаблонной строки заключается в том, что она можно включать выражения ${. } :
Экранирование символов
В JavaScript включение символа в строку, который используется для её создания, осуществляется посредством экранирования. В качестве символа экранирования используется обратный слеш \ :
Если этого не сделать, то будет выдана ошибка:
Кроме экранирования в данном случае вы можете просто использовать другую кавычку:
Кроме этого символ экранирования также используется для вставки спецсимволов в текст. Например:
- \n — перевод строки;
- \ — обратный слеш;
- \t — знак табуляции.
Длина строки
Получение длины строки, т.е. количества символов из которых она состоит, выполняется в JavaScript с помощью свойства length :
Доступ к символам
Извлечь определённый символ строки можно с помощью квадратных скобок . Внутрь квадратных скобок необходимо поместить число (порядковый номер символа). Отсчет символов в строке начинается с 0 :
При передаче индекса несуществующего символа, получим undefined :
Кроме этого получить символ строки по его порядковому номеру можно с помощью специальных предназначенных для этого случая методов: charAt и at .
Метод at появился в языке позже и в отличие от chartAt он более гибкий. Если ему передать на вход отрицательное число, то символ в этом случае будет отсчитываться с конца строки.
Ещё это можно сделать с помощью slice :
Если вам нужно посимвольно перебрать строку, то можно воспользоваться циклами. Например, for или for..of :
Методы строк
Несмотря на то, что строки являются примитивным типом данных , в JavaScript они ведут себя как объекты. Поэтому, при работе с ними, нам доступны различные свойства и методы . Например:
Как это работает в JavaScript? Тут всё очень просто. Когда происходит обращение к свойству или методу, строка оборачивается в специальную обёртку new String() . Таким образом создаётся новый экземпляр класса String , который имеет в свою очередь доступ к этим свойствам и методам. То есть по сути движок JavaScript внутри себя делает что-то следующее:
Но использовать в JavaScript new String() непосредственно для создания строк не нужно . Он применяется, как мы уже отметили выше автоматически, как обёртка над строкой, чтобы мы с ней могли работать как с объектом.
Саму функцию String без new можно использовать когда нужно привести некоторое значение к строке:
Другой способ преобразовать значение в строку – это использовать метод toString() :
В String содержится много методов для выполнения различных операций над строками. Некоторые из них мы уже рассмотрели выше. Это: concat() , at() , slice() и другие. Теперь разберём какие имеются ещё интересные методы в String для работы со строками.
1. Методы для поиска подстроки в строке:
- indexOf(substring [, start]) – возвращает индекс, с которого начинается искомая подстрока в строке;
- lastIndexOf(substring, [, start]) – то же самое, что indexOf , только поиск ведётся с конца строки.
Параметр start является не обязательным. Он используется, когда нужно указать с какого символа строки необходимо начать поиск. Если его не передать методу, то поиск будет вестись с начала строки.
Если указанная подстрока не найдена, то эти методы в качестве результата возвращают значение -1 .
В случае когда нужно проверить содержит ли указанная строка искомую, можно просто воспользоваться методом includes :
Этот метод возвращает true , если искомая строка найдена. В противном случае, false .
Для поиска с определённой позиции, её необходимо просто передать во второй аргумент includes :
Проверить начало и конец строки на соответствие в JavaScript можно очень просто с помощью специальных методов startsWith и endsWith :
2. Методы для получения подстроки:
- substring(start [, end]) – часть строки между start и end (не включая);
- substr(start [, length]) – часть строки, которая начинается с индекса start длиной length ;
- slice(start [, end]) – часть строки между start и end (не включая);
Примеры использования метода substring :
Примеры использования метода substr :
Примеры использования метода slice :
3. Разбиение строки на массив строк в JavaScript выполняется посредством метода split :
Переворачивание строки с использованием split :
Здесь с помощью split() мы сначала разбиваем строку по разделителю » на массив строк, каждая из которых это отдельный символ. После этого посредством reverse() инвертируем массив, и в конце с помощью join() обратно преобразуем его в строку.
4. Методы, с помощью которых можно в строке заменить pattern на replacement :
- replace(pattern, replacement) ;
- replaceAll(pattern, replacement) .
В качестве pattern можно использовать строку или регулярное выражение, а для replacement – строку или функцию.
В этом примере с помощью метода replace заменили в nums подстроку ‘Two’ на ‘Six’ . Для этого мы в качестве первого аргумента передали в replace строку, которую нужно заменить. А во второй аргумент строку, на которую её нужно заменить. С помощью replaceAll мы заменили все вхождения ‘Two’ на ‘Six’ .
Использование replaceAll для удаления пробелов из строки:
Если нужно убрать другой символ из строки:
Получение кода символа из таблицы UTF-16 в JavaScript осуществляется с помощью метода charCodeAt :
Статический метод String.fromCharCode() позволяет сформировать строку из указанных числовых кодов символов:
JavaScript изначально был основан на кодировке UTF-8, которая предусматривала 2 байта на один символ. Но позже этого оказалось недостаточно для представления всех символов. Поэтому для кодирования некоторых символов используется 4 байта:
Для получения кодов 4 байтных символов необходимо вместо charCodeAt() использовать codePointAt() . Также и для составления строки из заданных кодов следует вместо String.fromCharCode() использовать String.fromCodePoint() :
Метод repeat позволяет создать строку, состояющую из указанного количества повторений другой:
Методы padStart и padEnd позволяют дополнить строку до указанной длины заданным текстом:
Методы toLowerCase и toUpperCase предназначены для преобразования соответственно символов строки в строчные и прописные.
Сравнение строк
Сравнение строк в JavaScript выполняется посимвольно, по их кодам:
Здесь мы получили false , так как 87 < 119 . 87 и 119 – это соотвественно коды символов W и w в таблице UTF-16:
Как мы уже отметили выше, строки сравниваются посимвольно. То есть сначала сравниваются первые символы. Если их коды не равны, то сравнение завершается. В этом случае та строка будет больше, у которой код символа больше. В противном случае осуществляется переход к сравнению вторых символов и так далее:
Здесь сравнение заканчивается на втором символе, так как их коды не равны (код ‘e’ больше ‘b’ ).
Если при сравнении заканчивается одна из строк, то большей считается та, которая длиньше:
Кроме этого, в JavaScript имеется метод localeCompare() , который позволяет сравнить строки с учётом языка и определённых правил:
Например, проверим на равенство строки без учёта регистра в локали ‘ru’ :
С помощью параметра sensitivity указываем, что нужно игнорировать регистр и диактрические знаки при сравнении строк.
В качестве результата localeCompare() возвращает число:
- отрицательное число – первая строка меньше второй;
- 0 – равны;
- положительное число – первая строка больше второй;
В следующем примере отсортируем массив имён в соответствии с текущим языком пользователя:
Проверьте, содержит ли строка другую строку в качестве подстроки в JavaScript
В этом посте мы обсудим, как проверить, содержит ли строка другую строку в качестве подстроки в JavaScript.
1. Использование String.prototype.includes() функция
The includes() можно использовать для проверки того, включает ли данная строка другую строку или нет. Он возвращается true если искомая строка находится в заданной строке; false в противном случае. Вот как будет выглядеть код:
Этот метод был представлен в ES6 и пока может быть доступен не во всех реализациях JavaScript. Однако в MDN есть простой полифилл для этого метода: