В прошлый раз я написал статью о методах массивов JavaScript, объясняя, что делает каждый метод и как использовать их в вашем проекте (ведь нам всем приходится иметь дело с массивами каждый день нашей жизни разработчика, не так ли?).
Сегодня вы узнаете о методах строк в JavaScript и о том, как эффективно использовать их в своем проекте.
Строки? Что это такое?
Строка — это набор из одного или нескольких символов, которые могут включать буквы, цифры или символы. В JavaScript строки неизменяемы (они просто не могут изменяться, в отличие от языка программирования C). Строки являются примитивными типами данных. Другими примитивными типами данных являются: Null, Undefined, Boolean, Number, BigInt и Symbol.
В JavaScript существует около 24 методов работы со строками. В этой заметке вы узнаете, как работать с некоторыми из них (я хочу утолить ваш аппетит этими несколькими методами, чтобы вы были готовы сами проверить другие методы… ха!)
Что такое строковые методы
Когда вы работаете со строками в своем проекте, чаще всего вы хотите манипулировать ими. Методы — это встроенные функции, которые помогают нам выполнять манипуляции со строкой.
Давайте окунемся в работу и посмотрим, как мы можем использовать некоторые из этих методов, чтобы сделать наш строковый ввод таким, каким мы хотим его видеть для масштабирования нашего приложения.
charAt()
charAt()
используется для получения символа в определенной позиции в строке. Да, вот и все!
const name = "EmmanuelTheCoder"
const letter = name.charAt(0);
console.log(letter)
//result: E
Мы указали, что нам нужен символ в нулевой позиции, и получили «E».
Что если я укажу позицию, которой нет в строке?
Не волнуйтесь, JavaScript не будет кричать на вас, он только вернет пробел вместо какого-либо значения.
Вы всегда можете использовать String.length
, чтобы получить длину вашей строки и узнать, какой будет последняя позиция.
Я уверен, что теперь вы поняли этот метод. Теперь переходим к следующему!
charCodeAt()
Этот метод возвращает Unicode символа в указанной позиции.
Эй, эй, эй! Притормозите на минутку. Что, черт возьми, такое Юникод?
Хе-хе. Не черт. Юникод — это международный стандарт кодирования, согласно которому каждой букве, цифре или символу присваивается уникальное числовое значение.
Достаточно сказать, что каждой букве, цифре или символу присваивается уникальное числовое значение.
Сейчас вы сами в этом убедитесь.
const name = "EmmanuelTheCoder";
const numVal = name.charCodeAt(0);
//we are simply saying what is the
// assigned encoding value for "E"
console.log("Unicode of 'E' is:" numVal)
//result: 69
Но что если позиция, которую я указал в методе, не существует в строке?
В отличие от charAt()
, charCodeAt()
не простит вас, вернув пустое место. Она будет кричать на вас NaN
!
endsWith()
Используется для проверки, заканчивается ли строка заданным значением. Возвращает булево значение.
const title = "EmmanuelTheCoder is a developer"
const lastWord = title.endsWith("developer")
console.log(lastWord)
//result: true
Метод endsWith()
принимает два параметра: первый — это значение, которое вы хотите проверить, а второй, необязательный, — длина строки для поиска.
const title = "EmmanuelTheCoder is a developer"
const lastWord = title.endsWith("developer",10)
console.log(lastWord)
//result: false
Он возвращает false
, потому что слово «developer» не может быть найдено в конце первых 10 букв.
Понятно? Да, переходим к следующему методу
fromCharCode()
Этот метод преобразует значение Unicode в строку. Это как противоположность charCodeAt()
.
Давайте посмотрим в коде, как это работает.
const letter = String.fromCharCode(72);
console.log(letter);
//result: "H"
Это означает, что строковый эквивалент значения Unicode 72 — «H».
includes()
Этот метод проверяет, включает ли строка определенное значение. Он возвращает булево значение
const profile = "EmmanuelTheCoder is a developer from Africa"
const continent = profile.includes("Africa")
console.log(continent)
//result: true
Метод includes()
может также принимать второй параметр (необязательный) для указания позиции, с которой должна начинаться проверка.
indexOf()
Используется для получения позиции первого вхождения значения в строку.
const profile = "EmmanuelTheCoder is a developer from Africa and lives in Africa"
const checkContinentPostion = profile.indexOf("Africa")
console.log(checkContinentPostion)
//result: 37
checkContinentPosition
возвращает первое вхождение Africa в строке.
Если значение не найдено в строке, возвращается -1
. В качестве второго параметра можно также указать позицию, с которой следует начать поиск.
lastIndexOf()
Если вам нужно получить последнее вхождение значения в строке, то вам подойдет этот метод.
Теперь давайте поищем последнее вхождение Africa.
const profile = "EmmanuelTheCoder is a developer from Africa and lives in Africa"
const checkLastOccurenceOfAfrica = profile.lastIndexOf("Africa")
console.log(checkLastOccurenceOfAfrica)
//result: 57
Этот метод также может принимать второй параметр в качестве позиции, с которой нужно начать поиск.
localCompare()
Сравнивает две строки в текущей локали и возвращает:
-1, если строка отсортирована перед сравниваемой строкой
0, если две строки равны
1, если строка отсортирована после сравниваемой строки.
const text1 = "ab"
const text2 = "cd"
const compare = text1.localCompare(text2)
//result: -1
match()
Этот метод используется для поиска значения в строке. В зависимости от того, чего вы хотите добиться, лучше всего передать в качестве параметра регулярное выражение для более точного поиска
const sentence = " I say if you will STAY in the house, you have to pay. Okay?"
const searchAValue = sentence.match(/ay/g);
console.log(searchAValue)
//result: ['ay', 'ay', 'ay']
Возвращает массив с совпадениями. Вы можете преобразовать этот массив в строку, выполнив searchAValue.toString()
. toString()
— это еще один метод, который используется для преобразования нестроки в строку.
Вы заметили, что поиск вернул не все совпадения. Это потому, что мы не указали в регулярном выражении, что глобальный поиск должен быть нечувствительным к регистру, поэтому поиск пропустил «ay» в слове «STAY». Давайте сделаем это сейчас.
const sentence = " I say if you will STAY in the house, you have to pay. Okay?"
const searchAValue = sentence.match(/ay/gi);
console.log(searchAValue)
//result: ['ay', 'AY' 'ay', 'ay']
Я слышал, как вы сказали: «Эй, эй, эй! Не могли бы вы притормозить на минутку, чтобы я смог разобраться со всем этим?
О, да. Давайте просто сделаем еще один метод, и я обещаю сделать паузу, чтобы вы могли потренироваться. Договорились? Да!
Хорошо, давайте сократим это. Хе-хе!
trim()
Этот метод используется для удаления всех пробелов с обеих сторон строки. Обратите внимание, что он удаляет пробелы с обеих сторон, а не между строками.
const followMeOnTwitter = " @EmmanuelCoder"
const followMePlease = followMeOnTwitter.trim()
console.log(followMePlease)
//result: '@EmmanuelCoder'
Ура! Вы дошли до этого момента, поздравляем! Пожалуйста, идите и практикуйтесь дальше, чтобы овладеть навыками работы со строками.
Пожалуйста, поставьте этому посту лайк, а также поделитесь!