- Строковые функции в JavaScript
- Обзор встроенных функций String в JavaScript
- Как проверить включает ли одна строка другую
- Как определить начинается ли одна строка с другой строки
- Как определить заканчивается ли одна строка другой строкой
- Как удалить пробелы в начале и конце JavaScript строки
- Как перевести всю JS строку в ВЕРХНИЙ или нижний регистр
- Как заменить один символ на другой в JavaScript строке
- String.prototype.includes()
- Try it
- Syntax
- Parameters
- Return value
- Exceptions
- Description
- Case-sensitivity
- Examples
- Using includes()
- Specifications
- Browser compatibility
- See also
- Found a content problem with this page?
- Строковые методы includes(), indexOf() и lastIndexOf() в JS
- Пример использования includes()
- Пример использования indexOf()
- Пример использования lastIndexOf()
- Комментарии ( 0 ):
Строковые функции в JavaScript
Строка — один из основных типов данных в JS. Сегодня я расскажу тебе о типе данных String и встроенных строковых функциях в JavaScript.
В JavaScript, все текстовые данные — это строки. Не важно, состоит твой текст из одного или десяти тысяч символов. Все это — строки.
Длину JavaScript строки ты можешь получить из поля length .
const s = 'Hello, World!'; console.log(s.length);
Второй важный пункт стоит выделить отдельно:
JavaScript строка не изменяется после создания. Функции вроде replace или slice , вернут тебе новую строку, а оригинальная строка останется без изменений.
Обзор встроенных функций String в JavaScript
Во всех примерах, я буду считать, что ты объявил строку s как константу со значением I am going to become a FULL STACK JS Dev with Coderslang .
const s = 'I am going to become a FULL STACK JS Dev with Coderslang';
Как проверить включает ли одна строка другую
Чтобы проверить вхождение одной строки в другую в JavaScript существует встроенная функция includes .
Она вернет true или false в зависимости от результата проверки.
console.log(s.includes('FULL STACK')); // true console.log(s.includes('cheeseburger')); // false
То же самое можно сделать иначе. Чтобы узнать есть ли какое-то слово в строке, ты можешь использовать функции indexOf или lastIndexOf . Они обе проверяют, включает ли основная строка искомую строку и вернут индекс элемента с которого начинается совпадение. А если совпадений не будет, то они обе вернут -1 .
console.log(s.indexOf('AWS')); // -1 console.log(s.lastIndexOf('AWS')); // -1
Отличие indexOf от lastIndexOf становится очевидным, когда в основной строке несколько вхождений искомой подстроки.
console.log(s.indexOf('g')); // 5 console.log(s.lastIndexOf('g')); // 55
Это отличие определяет и результат.
В любом случае, ты можешь использовать indexOf и lastIndexOf чтобы определить, включает ли одна строка другую в JavaScript. Если результат отличается от -1 , то да, совпадение найдено. Иначе — совпадений нет
Как определить начинается ли одна строка с другой строки
Чтобы узнать, стоит ли одна строка в начале другой строки в JavaScript существует функция startsWith . Она возвращает true если основная строка начинается со строки аргумента, иначе — false .
console.log(s.startsWith('I am')); // true console.log(s.startsWith('You are')); // false
Как определить заканчивается ли одна строка другой строкой
Чтобы проверить вхождение одной строки в конце другой строки в JS существует функция endsWith . Она работает почти так же как и startsWith , но проверяет окончание строки, а не начало.
console.log(s.endsWith('Coderslang')); // true console.log(s.endsWith('Node.js')); // false
Как удалить пробелы в начале и конце JavaScript строки
Чтобы удалить лишние пробелы в начале или конце JS строки ты можешь воспользоваться этими функциями:
- trimStart — удаляет пробелы в начале строки
- trimEnd — удаляет пробелы в конце строки
- trim — удаляет пробелы в начале и конце строки
В нашей базовой строке не было пробелов, поэтому давай создадим новую для демонстрации.
const stringWithSpaces = ' I learn JS with Coderslang every day '; console.log(stringWithSpaces.trimStart()); //'I learn JS with Coderslang every day ' console.log(stringWithSpaces.trimEnd()); //' I learn JS with Coderslang every day' console.log(stringWithSpaces.trim()); //'I learn JS with Coderslang every day'
Как перевести всю JS строку в ВЕРХНИЙ или нижний регистр
Чтобы получить строку идентичную данной, но со всеми буквами в верхнем регистре, ты можешь использовать функцию toUpperCase , а для нижнего регистра toLowerCase .
console.log(s.toUpperCase()); // I AM GOING TO BECOME A FULL STACK JS DEV WITH CODERSLANG console.log(s.toLowerCase()); // i am going to become a full stack js dev with coderslang
Опять-таки, обрати внимание, что строка s не меняется, потому что все строки в JavaScript неизменяемы. Функции toUpperCase и toLowerCase возвращают новую строку, которая содержит все требуемые изменения.
Как заменить один символ на другой в JavaScript строке
Чтобы сделать замену символа в JS строке, ты можешь использовать функцию replace . Передай в нее две строки, и она заменит первое вхождения первой строки (в базовой строке) на вторую строку.
console.log(s.replace(' ', '!')) // I!am going to become a FULL STACK JS Dev with Coderslang console.log(s.replace('I am', 'You are')) // You are going to become a FULL STACK JS Dev with Coderslang
Если ты удивлен, что replace меняет только один символ — это нормально. Просто это базовый сценарий.
Чтобы сделать замену всех символов (или подстрок), тебе нужна функция replaceAll .
console.log(s.replaceAll(' ', '!')) // I!am!going!to!become!a!FULL!STACK!JS!Dev!with!Coderslang
Обрати внимание, что в зависимости от того, где ты запускаешь код, может иногда появиться ошибка.
TypeError: s.replaceAll is not a function
Если ты получил такую ошибку, то функция replaceAll не поддерживается твоим JavaScript окружением и ты можешь использовать регулярное выражение с флагом g . Так обычный replace сработает как replaceAll .
const regex = new RegExp(' ', 'g'); const s = 'I am going to become a FULL STACK JS Dev with Coderslang'; console.log(s.replace(regex, '!')); // I!am!going!to!become!a!FULL!STACK!JS!Dev!with!Coderslang
String.prototype.includes()
The includes() method performs a case-sensitive search to determine whether one string may be found within another string, returning true or false as appropriate.
Try it
Syntax
includes(searchString) includes(searchString, position)
Parameters
A string to be searched for within str . Cannot be a regex. All values that are not regexes are coerced to strings, so omitting it or passing undefined causes includes() to search for the string «undefined» , which is rarely what you want.
The position within the string at which to begin searching for searchString . (Defaults to 0 .)
Return value
true if the search string is found anywhere within the given string, including when searchString is an empty string; otherwise, false .
Exceptions
Description
This method lets you determine whether or not a string includes another string.
Case-sensitivity
The includes() method is case sensitive. For example, the following expression returns false :
"Blue Whale".includes("blue"); // returns false
You can work around this constraint by transforming both the original string and the search string to all lowercase:
"Blue Whale".toLowerCase().includes("blue"); // returns true
Examples
Using includes()
const str = "To be, or not to be, that is the question."; console.log(str.includes("To be")); // true console.log(str.includes("question")); // true console.log(str.includes("nonexistent")); // false console.log(str.includes("To be", 1)); // false console.log(str.includes("TO BE")); // false console.log(str.includes("")); // true
Specifications
Browser compatibility
BCD tables only load in the browser
See also
Found a content problem with this page?
This page was last modified on Apr 6, 2023 by MDN contributors.
Your blueprint for a better internet.
Строковые методы includes(), indexOf() и lastIndexOf() в JS
Методы includes(), indexOf() и lastIndexOf() существуют в JavaScript для работы со строками. Рассмотрим на примерах каждый из них, что они делают и чем отличаются от от друга .
Пример использования includes()
Строковый метод includes() проверяет, содержит ли строка заданную подстроку, и возвращает true или false в зависимости от того нашли ли они что-нибудь в строке или нет. На этом уроке мы рассмотрим как работает метод string.prototype.includes().
Создадим переменную str и присвоим ей строку — короткое предложение заключенное в одинарные кавычки. Сделаем проверку, есть ли в этой строке слово «ходила». Пишем запрос прямо в console.log. Обращаемся к переменной str, указываем сам метод поиска includes() и передаем в аргументах слово, которое мы ищем ‘ходила’. Если строка содержит это слово, то мы получим true.
let str = ‘По улице ходила большая крокодила.’;
console.log(str.includes(‘ходила’)); // true
Метод includes() чувствителен к регистру символов. Если написать тоже самое слово с большой буквы, то выражение вернет false.
При попытке найти отсутсвующее слово в строке, метод вернет конечно же false.
Пользоваться методом includes() для поиска слов в строке неудобно из-за чувствительности к регистру. Зато хорошо проверять есть ли какие-нибудь вхождения внутри строк. Этот метод может принимать два аргумента: искомую подстроку и позицию (index), с которой нужно начинать поиск.
У каждого элемента в строке есть свой индекс (порядковый номер в строке), отсчет которого ведется с нуля. Я говорю, найди мне слово «улице», начиная со 2-го индекса и он находит.
let str = ‘По улице ходила большая крокодила.’;
console.log(str.includes(‘улице’, 2)); // true
Но начиная с четвертого индекса, это слово уже не будет найдено.
let str = ‘По улице ходила большая крокодила.’;
console.log(str.includes(‘улице’, 4)); // false
Пример использования indexOf()
Метод indexOf() возвращает индекс искомой подстроки в строке. Например у нас есть строка в переменной a, в которой нужно найти индекс (позицию в строке) заданной подстроки «работа». Присвоим переменной b выражение с вычислением методом indexOf() начала позиции подстроки «работа». Затем выведем в консоль переменную b и получаем результат, что слово «работа» начинается с 10-ой позиции. Определение индекса, часто используемое действие в программировании.
let a = ‘Удаленная работа — это новая реальность.’;
let b = a.indexOf(‘работа’);
console.log(b); // 10
Передадим вторым аргументом в indexOf() номер позиции 20, с которой следует искать слово «работа». Поскольку с 20-ой позиции нет этого слова, то метод indexOf() возвращает -1, так как не находит заданную подстроку для поиска. Обратите внимание, что includes() в этом случае возвратил бы false. Метод includes() возвращает булевое значение, true или false. А метод indexOf возвращает index, в том числе и отрицательный.
let a = ‘Удаленная работа — это новая реальность.’;
let b = a.indexOf(‘работа’, 20);
console.log(b); // -1
Пример использования lastIndexOf()
Метод lastIndexOf тоже возвращает индекс подстроки, но находит не первое вхождение, а последнее. Этот метод также может принимать два аргумента (подстрока, позиция). В примере ниже, lastIndexOf нашел не первое слово «работа», а последнее на 29-ой позиции.
let a = ‘Удаленная работа — это новая работа.’;
let b = a.lastIndexOf(‘работа’);
console.log(b); // 29
Создано 25.01.2021 10:43:38
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.