Автор оригинала: Fagbohungbe Juwon.
Я опубликовал этот пост на своей среднесрочной странице, вы можете проверить это здесь
Ранее сегодня я работал на Вызов на кодовых ценах или как они популярны; Ката
Отказ Работая над этим я также провел некоторые исследования о том, как я мог пойти в его решение, и я наткнулся на струнный метод, который я никогда не использовал раньше. Метод замены ().
String.prototype.replace ()
По словам MDN , метод замены возвращает новую строку в конце концов, или часть его заменена на основе образца замены/строки. Шаблон может быть подстрокой или регулярным выражением (я предполагаю, что вы все знаете о регулярных выражениях, если вы не можете проверить это out).
Метод замены принимает два аргумента:
- Шаблон или подстрока должны быть сопоставлены.
- Новая строка/подстрока или функция, которая возвращает новую строку, чтобы заменить соответствующую строку. Давайте посмотрим на синтаксис заменить
const newString = string.replace(substring/pattern, newstring/function)
Решение проблемы
Задача преобразования строки в корпус верблюда – кодовые слова
То, что мы хотим сделать, это найти все символы в данной строке, которая соответствует либо подчеркиванию (_), либо в дефисе (-) и алфавитах после них, преобразуйте их в прописные буквы и сначала удаляют не алфавитные символы, Поскольку метод замены может предпринять регулярное выражение для использования для сопоставления, мы можем создать выражение, которое соответствует тому, что мы хотим заменить.
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, '')) }
Я уверен, что есть несколько способов решить эту конкретную проблему, но с помощью метода замены кажутся очень простыми и простыми в использовании. Вы также можете комментировать свои собственные решения или вопросы. Я надеюсь, что это поможет кому-то …
Для большего количества советов или рекомендаций вы можете связаться со мной на Twitter ✌️.