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

Работа со строками неизбежна во всех языках программирования, поэтому приятно знать, что JavaScript предоставляет несколько замечательных функций для работы со строками прямо из коробки.

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

включает в себя()

Одна из самых распространенных проблем — проверить, содержит ли строка определенные слова или символы. Например, проверить, является ли электронная почта пользователя из Gmail или Hotmail.

Метод includes() проверяет, содержит ли строка вхождение предоставленной подстроки. Он возвращает логическое значение.

let email = '[email protected]'
email.includes('gmail') // false
email = '[email protected]'
email.includes('gmail') // true

Совет. Мы можем использовать метод endsWith для приведенного выше варианта использования, чтобы сделать его более эффективным.

соответствовать()

Метод match() возвращает вхождения подстрок, соответствующих предоставленному шаблону Regex.

Это полезно, когда мы не знаем точную строку, но знаем шаблон строки, которую ищем. Например, мы не знаем адрес электронной почты пользователя, но знаем, что в строке будет упомянут один адрес электронной почты.

Другой хороший случай — использовать его для сопоставления групп из регулярного выражения. Например, у нас есть URL-адрес для отказа от подписки, который содержит тип информационного бюллетеня и токен аутентификации пользователя.

Метод match() упрощает извлечение совпадающих групп из строки в виде именованных значений.

const unsubscribeUrlPattern = /unsubscribe\/(?<type>[^/]+)\/(?<token>[^/]+)/

const { type, token } = url.match(unsubscribeUrlPattern)?.groups ?? {}

заменить все()

Вы, должно быть, сталкивались с вариантом использования, когда вы хотите обновить текст, прежде чем отображать его для просмотра пользователем. Например, у вас есть номера заявок Jira в этих примечаниях к выпуску, и вы хотите сделать ссылки, чтобы пользователи могли щелкнуть по ним, чтобы оформить заказ.

Именно в этом вам может помочь replaceAll(). Он заменяет все экземпляры данной подстроки/регулярного выражения вторым аргументом.

let notes = 'Please checkout TS-4550 for more details. Also, TS-5589 will have test instructions.'

notes = notes.replaceAll(/TS-[0-9]+/g, '<a href="https://jira.com/$&" />')

// $& is used to insert the matched substring i.e. TS-4550

подрезать()

Метод trim() очень удобен, когда вы проверяете входные данные формы, пользователи склонны оставлять ненужные пробелы в текстовых вводах.

Метод trim() удаляет пробелы с обоих концов строки и возвращает новую строку без изменения исходной строки.

в нижний регистр()

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

Лучший способ сделать это — сделать значения строчными, чтобы оба значения соответствовали одному и тому же регистру. Это очень удобно при сравнении значений на стороне сервера или клиента, таких как ввод пользователя со значениями базы данных.

const userEmail = // value from input
validateSignIn(userEmail.toLowerCase()) // to avoid case sensitive mis-match
function validateSignIn(email) {
    // check if email is available on back end
}

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

Это все на сегодня. Я надеюсь, что вы найдете эту статью полезной!
Это мои пять лучших вариантов, если вы чувствуете, что я упустил некоторые важные методы, пожалуйста, не стесняйтесь комментировать ниже.

Чтобы узнать больше такого контента, подписывайтесь на меня в Twitter.

До следующего раза!

Ресурсы

МДН документы

Первоначально опубликовано на https://theanshuman.dev 7 марта 2022 г.

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.