TypeScript:
Удаление символов, соответствующих шаблону
Как сделать:
function deletePattern(text: string, pattern: string): string {
// Создаем RegExp из строки шаблона
const regex = new RegExp(pattern, 'g');
// Заменяем вхождения шаблона пустой строкой
return text.replace(regex, '');
}
// Пример использования
const originalText = "Привет, Мир! Это -- тест.";
const newText = deletePattern(originalText, "[,\\-!]");
console.log(newText); // Вывод: "Привет Мир Это тест"
Подробнее
Исторически обработка строк в программировании восходит к заре вычислительной техники. В TypeScript, который построен на основе JavaScript, манипуляции со строками являются повседневной задачей. Функция replace()
, которую мы использовали, унаследована из мощного арсенала для манипуляций со строками в JavaScript.
Существуют альтернативы RegExp для сопоставления шаблонов – иногда вы можете захотеть вручную пройтись по каждому символу и принимать решения с помощью оператора выбора или серии условий if. Но регулярные выражения предоставляют краткий и мощный способ описания сложных шаблонов для сопоставления.
Детали реализации становятся интересными, когда вы углубляетесь в то, как шаблоны RegExp интерпретируются во время выполнения. Флаг ‘g’ в конструкторе RegExp говорит движку искать глобально по всей строке. Без него заменялось бы только первое совпадение. Регулярные выражения могут быть простыми или невероятно сложными, в зависимости от ваших потребностей.
Смотрите также
- Документация MDN Web Docs по RegExp: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/RegExp
- Руководство TypeScript по манипуляциям со строками: https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html
- Тестер регулярных выражений для помощи в создании шаблонов: https://regexr.com/