equals, contains, startsWith e indexOf
Cada função de comparação tem a sua própria regra de maiúsculas e minúsculas, e isso muda o resultado de condições que parecem idênticas. A tabela abaixo foi montada executando cada uma no Power Automate.
Sintaxe
equals(a, b) contains(coleção, valor) startsWith(texto, prefixo) endsWith(texto, sufixo) indexOf(texto, busca)
Exemplos testados
| Expressão | Resultado |
|---|---|
equals('Ana', 'ana')diferencia | false |
contains('abc', 'B')diferencia | false |
startsWith('Cimento 50', 'cim')NÃO diferencia | true |
endsWith('x.CSV', '.csv')NÃO diferencia | true |
indexOf('ABC', 'b')NÃO diferencia | 1 |
indexOf('abc', 'z')não achou: -1 | -1 |
equals(1, '1')número e texto são diferentes | false |
contains(outputs('Dados')?['multiTexto'], 'Cim')em TEXTO, procura um trecho | true |
contains(outputs('Dados')?['multiArray'], 'Cim')em LISTA, só o item inteiro | false |
contains(outputs('Dados')?['pedido'], 'cliente')em objeto, procura a chave | true |
contains(createArray(1,2,3), 2) | true |
greater('b', 'a') | true |
Quando usar
Antes de escrever uma condição com texto, decida duas coisas: a comparação deve diferenciar maiúsculas de minúsculas, e o valor é um texto, uma lista ou um objeto? Para comparações tolerantes, normalize os dois lados com toLower() e compare com equals, em vez de contar com a regra de cada função. Use startsWith e endsWith para prefixos e extensões de arquivo (.csv), contains para ver se um item existe em uma lista e indexOf para saber a posição de um trecho. Se a resposta de um formulário pode chegar como texto de lista, trate-a (ou converta com json()) antes de usar contains, para não aceitar trechos parciais.
Armadilhas
- Regra de bolso:
equalsecontainsdiferenciam maiúsculas;startsWith,endsWitheindexOfignoram. Para igualar, normalize os dois lados comtoLower(). containsem texto procura trecho: "Cimento Branco" também contém "Cimento". Em lista, exige o item inteiro. Confira se a resposta chegou como texto ou como lista.equals(1, '1')é falso. Converta os tipos antes de comparar.- Filtre anexos com
endsWith(nome, '.csv')sem se preocupar com.CSV.
Perguntas frequentes
Como fazer uma comparação sem diferenciar maiúsculas?
equals(toLower(a), toLower(b)).
Como testar se um texto contém outro sem diferenciar maiúsculas?
contains(toLower(a), toLower(b)), ou indexOf(a, b) maior ou igual a zero (o indexOf já ignora a diferença).