Использование string.replace в Javascript | Кодементор

Я также опубликовал этот пост на своей средней странице, вы можете проверить его. здесь

Ранее сегодня я работал над вызов на Codewars или как их обычно называют; Kata. Работая над ним, я также провел небольшое исследование того, как я могу его решить, и наткнулся на строковый метод, который никогда раньше не использовал. Метод замены().

Строка.прототип.заменить()

Согласно с МДНметод replace возвращает новую строку после замены всей или части строки на основе шаблона/строки замены.
Шаблон может быть подстрокой или регулярным выражением (я полагаю, вы все знаете о регулярных выражениях, если вы не знаете, вы можете проверить это вне).

Метод replace принимает два аргумента:

  1. Шаблон или подстрока для сопоставления.
  2. Новая строка/подстрока или функция, которая возвращает новую строку для замены совпадающей строки.
    Давайте посмотрим на синтаксис замены
const newString = string.replace(substring/pattern, newstring/function)

Решение проблемы

1*s_QKl4kgYiYA_6VOL1ghWg.png
Задача преобразовать строку в верблюжий регистр — Codewars

Что мы хотим сделать, так это найти все символы в заданной строке, которые соответствуют символу подчеркивания (_) или дефису (-) и алфавиту после них, преобразовать их в прописные буквы и удалить неалфавитные символы.
Прежде всего, поскольку метод replace может использовать регулярное выражение для сопоставления, мы можем создать выражение, соответствующее тому, что мы хотим заменить.

const regExp = /[^a-z][a-z]/gi

Давайте разберем регулярное выражение выше

[^a-z] - this matches any character in the string that is not an alphabet from a-z
[a-z] - this matches any character in the string that is an alphabet from a-z
g - global, to make sure it checks the whole string
i - insensitive, to make sure it doesn't bother about the case of the string

Теперь, когда мы выяснили, как сопоставлять строку/символы, с которыми мы хотим работать, мы также должны выяснить, как заменить их в строке.
Давайте создадим функцию в качестве второго параметра, которая может принимать совпадающие символы в строке и преобразовывать их в новые символы, которые нам нужны.

const newWord = word => word.toUpperCase().replace(/[^a-z]/gi, '')

Разбивка функции выше

word.toUpperCase() - this transforms the matched characters to uppercase
replace(/[^a-z]/gi, '') - this replaces the transformed characters that aren't alphabets from a-z with empty strings

Полный метод решения

const toCamelCase = str => {
  return newWord = str.replace(/[^a-z][a-z]/gi, word => word.toUpperCase().replace(/[^a-z]/gi, ''))
}

Я уверен, что есть несколько способов решить эту конкретную проблему, но использование метода replace кажется очень простым и простым в использовании.
Вы также можете прокомментировать свои собственные решения или вопросы.
Я надеюсь, что это поможет кому-то…

Чтобы получить дополнительные советы или рекомендации, вы можете связаться со мной по телефону Твиттер ✌️

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *