Рубрики
Без рубрики

Использование String.replace в JavaScript

Использование метода замены для изменения строки

Автор оригинала: Fagbohungbe Juwon.

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

Ранее сегодня я работал на Вызов на кодовых ценах или как они популярны; Ката Отказ Работая над этим я также провел некоторые исследования о том, как я мог пойти в его решение, и я наткнулся на струнный метод, который я никогда не использовал раньше. Метод замены ().

String.prototype.replace ()

По словам MDN , метод замены возвращает новую строку в конце концов, или часть его заменена на основе образца замены/строки. Шаблон может быть подстрокой или регулярным выражением (я предполагаю, что вы все знаете о регулярных выражениях, если вы не можете проверить это out).

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

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

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

Задача преобразования строки в корпус верблюда – кодовые слова

1 * s_qkl4kgyiya_6vol1ghwg.png.png.png.

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

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 ✌️.