JavaScript | Как удалить определённые символы из строки?

JavaScript | Как удалить определённые символы из строки?

У нас есть строка:

let str = `йц3уке рпар фыв3йцу иа яы1у й1ыс ыв4 аватц`

Мы хотим удалить из этой строки символы «й«, «3» и «ц«. Как это сделать?

 

Удаление определённых символов строки через регулярное выражение в JavaScript

Мы можем литерально записать наше регулярное выражение и передать его в метод replace(), который работает со всеми экземплярами строк — объектами String.

str.replace(/[й3ц]/g, '')

Результат работы:

Удалили определённые символы из строки JavaScript через метод replace и регулярное выражение
Удалили определённые символы из строки JavaScript через метод replace и регулярное выражение

 

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

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

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

Символы синтаксиса шаблона регулярного выражения в JavaScript
Символы синтаксиса шаблона регулярного выражения в JavaScript

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

Простыми словами. Если тебе надо удалить из строки все виды квадратных скобок, то в класс символа тебе нужно положить это «\[\]».

Пример:

let str3 = `[йц3уке [[рпар фы[[в3йцу иа яы]]1у й1ыс ыв4]] аватц]`

str3.replace(/[й3ц]/g, '')
'[уке [[рпар фы[[ву иа яы]]1у 1ыс ыв4]] ават]'

str3.replace(/[й3ц\[\]]/g, '')
'уке рпар фыву иа яы1у 1ыс ыв4 ават'

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

Стало быть в конструкции класса символа нам могут помешать только искомые символы квадратных скобок, которые мы хотим удалить.

Удалили квадратные скобки из строки, экранируя их в классе символа JavaScript
Удалили квадратные скобки из строки, экранируя их в классе символа JavaScript

 

Если тебе надо удалить из строки все виды круглых скобок, то в класс символа тебе можно положить это «\(\)», а можно не положить.

Пример:

let str2 = `(йц3уке ((рпар фы((в3йцу иа яы))1у й1ыс ыв4)) аватц)`

str2.replace(/[й3ц]/g, '')
'(уке ((рпар фы((ву иа яы))1у 1ыс ыв4)) ават)'

str2.replace(/[й3ц\(\)]/g, '')
'уке рпар фыву иа яы1у 1ыс ыв4 ават'
Удалили символы, которые могут быть частью синтаксиса шаблона регулярного выражения в JavaScript
Удалили символы, которые могут быть частью синтаксиса шаблона регулярного выражения в JavaScript

С экранами или без, ситуация не измениться в этом конкретном случае.

Круглые скобки в классе символа RegExp можно не экранировать - JavaScript
Круглые скобки в классе символа RegExp можно не экранировать — JavaScript

 

Информационные ссылки

Стандарт ECMAScripthttps://tc39.es/ecma262/multipage/

Стандарт ECMAScript — Раздел «RegExp (Regular Expression) Objects» — https://tc39.es/ecma262/multipage/text-processing.html#sec-regexp-regular-expression-objects