replace, substring, trim e toUpper
As funções de texto do dia a dia: trocar um trecho, extrair uma parte, limpar espaços e ajustar maiúsculas. Todas trabalham com acentos sem problema; as pegadinhas estão nas posições (que começam em zero) e em quando a troca diferencia maiúsculas.
Sintaxe
replace(texto, antigo, novo) substring(texto, início, [comprimento]) trim(texto)
Exemplos testados
| Expressão | Resultado |
|---|---|
replace('Ana ANA', 'ana', 'x')nada mudou: diferencia maiúsculas | Ana ANA |
replace('a-b-c', '-', '')trocar por vazio remove | abc |
substring('abcdef', 0, 3)posição 0, 3 caracteres | abc |
substring('abcdef', 2)até o fim | cdef |
trim(' x ') | x |
trim(' a b ')só as pontas | a b |
toUpper('ação') | AÇÃO |
toLower('AÇÃO') | ação |
length('Olá')conta caracteres, não bytes | 3 |
take('abcdef', 3) | abc |
Quando usar
Use replace para limpar dados vindos de fora: tirar pontos e vírgulas de números, remover o "R$", trocar separadores. Encadeie vários replace, do mais específico para o mais geral. Use substring com length para extrair partes de códigos de tamanho fixo (os quatro primeiros caracteres de um código, o ano de um identificador) e trim em todo texto digitado por pessoas antes de comparar ou gravar, porque espaços nas pontas fazem textos iguais parecerem diferentes. Para maiúsculas e minúsculas consistentes em chaves e comparações, padronize com toLower ou toUpper logo na entrada do dado.
Armadilhas
replacediferencia maiúsculas. Para trocar sem se importar com a caixa, passe o texto portoLower()antes (e aceite que o resultado fica em minúsculas).- As posições começam em zero.
substring('abcdef', 0, 3)pega as três primeiras letras. trimnão mexe no meio do texto (' a b 'vira'a b').substringalém do tamanho do texto dá erro. Confira comlength().
Perguntas frequentes
Como pegar os últimos 4 caracteres?
substring(texto, sub(length(texto), 4)) (com o texto garantidamente maior que 4).
Como remover acentos?
Não existe função pronta. Uma troca com vários replace encadeados funciona para listas pequenas.