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:
- Normalização de Texto: Remover símbolos não alfanuméricos para análise limpa
- Sanitização de Input: Proteger contra injection removendo caracteres perigosos
- Preparação para Busca: Limpar termos de busca removendo símbolos especiais
- 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