Pular para conteúdo

REMOVE_SPECIAL_CHARS - Remoção de Caracteres Especiais

O que é esta operação?

A operação REMOVE_SPECIAL_CHARS do Content Cleaner remove caracteres especiais e símbolos mantendo apenas letras, números, espaços e opcionalmente pontuação básica.

Por que esta operação existe?

Caracteres especiais podem causar problemas em processamento. Esta operação existe para:

  1. Normalização de Texto: Remover símbolos não alfanuméricos para análise limpa
  2. Sanitização de Input: Proteger contra injection removendo caracteres perigosos
  3. Preparação para Busca: Limpar termos de busca removendo símbolos especiais
  4. Compatibilidade: Garantir que texto funcione em sistemas que não suportam Unicode especial

Como funciona internamente?

Código interno (content-cleaner-executor.service.ts:252-260):

// Remove special characters (keeping basic punctuation if not removing punctuation)
if (config.removeSpecialChars === true) {
  const specialCharsRegex = config.removePunctuation === true
    ? /[^\w\s]/g  // Remove all non-alphanumeric except spaces
    : /[^\w\s.,!?;:()\-'"]/g;  // Keep basic punctuation
  const matches = cleaned.match(specialCharsRegex);
  stats.specialCharsRemoved = matches ? matches.length : 0;
  cleaned = cleaned.replace(specialCharsRegex, '');
}

Parâmetros

Campo Tipo Obrigatório Descrição
inputVariable string Sim Variável contendo o texto a limpar
removeSpecialChars boolean Não Remove caracteres especiais (padrão: false)
removePunctuation boolean Não Se true com removeSpecialChars, remove até pontuação
outputVariable string Não Variável para resultado

Exemplo: Sanitização de Busca

{
  "name": "Sanitizar Busca",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "input_1",
      "type": "input",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Termo de Busca",
        "parameters": {
          "message": "Digite o que procura:",
          "variableName": "search_term"
        }
      }
    },
    {
      "id": "cleaner_1",
      "type": "content_cleaner",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Limpar Busca",
        "parameters": {
          "inputVariable": "search_term",
          "removeSpecialChars": true,
          "toLowerCase": true,
          "trimWhitespace": true,
          "outputVariable": "clean_search"
        }
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Buscar",
        "parameters": {
          "message": "🔍 Buscando por: {{clean_search}}"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 900, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "input_1" },
    { "source": "input_1", "target": "cleaner_1" },
    { "source": "cleaner_1", "target": "message_1" },
    { "source": "message_1", "target": "end_1" }
  ]
}

Boas Práticas

SIM: Sanitizar inputs de usuário, normalizar texto para busca, preparar para SQL-safe queries ❌ NÃO: Remover de textos onde símbolos têm significado (código, fórmulas matemáticas)

Dicas

💡 Dica 1: Use com removePunctuation: false para manter pontuação básica (.,!?) 💡 Dica 2: Combine com toLowerCase para normalização completa de buscas 💡 Dica 3: Mantém underscores (_) pois são considerados caracteres de palavra

Próximo Node

REMOVE_NUMBERS - Remove todos os números → REMOVE_PUNCTUATION - Remove pontuação