Использование string.replace в Javascript | Кодементор
Я также опубликовал этот пост на своей средней странице, вы можете проверить его. здесь
Ранее сегодня я работал над вызов на Codewars или как их обычно называют; Kata
. Работая над ним, я также провел небольшое исследование того, как я могу его решить, и наткнулся на строковый метод, который никогда раньше не использовал. Метод замены().
Строка.прототип.заменить()
Согласно с МДНметод replace возвращает новую строку после замены всей или части строки на основе шаблона/строки замены.
Шаблон может быть подстрокой или регулярным выражением (я полагаю, вы все знаете о регулярных выражениях, если вы не знаете, вы можете проверить это вне).
Метод replace принимает два аргумента:
- Шаблон или подстрока для сопоставления.
- Новая строка/подстрока или функция, которая возвращает новую строку для замены совпадающей строки.
Давайте посмотрим на синтаксис замены
const newString = string.replace(substring/pattern, newstring/function)
Решение проблемы
Задача преобразовать строку в верблюжий регистр — 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 кажется очень простым и простым в использовании.
Вы также можете прокомментировать свои собственные решения или вопросы.
Я надеюсь, что это поможет кому-то…
Чтобы получить дополнительные советы или рекомендации, вы можете связаться со мной по телефону Твиттер ✌️