Linguagem avançada · unidade 16 de 27
Regular expressions
Regex boa expressa um contrato, não esperteza.
01 / 07Use as setas do teclado ou deslize
Leitura
Âncoras, flags, captura e legibilidade ao reconhecer padrões em texto no backend.
No backend, esse fundamento aparece quando o código transforma entrada em decisão. O detalhe de linguagem deixa de ser acadêmico no momento em que altera um payload, uma regra de negócio ou a forma como uma falha chega à camada seguinte.
A forma mais útil de estudar é ligar a sintaxe a um contrato observável: o que entra, o que pode mudar, qual resultado sai e qual erro deve continuar o fluxo. É esse raciocínio que os exemplos e exercícios desta unidade procuram treinar.
Código
const orderId = /^ORD-(?<year>\d{4})-(?<id>\d+)$/O que fica
- Âncoras validam o valor inteiro, não só um trecho.
- Escolha test, match ou replace pela intenção.
- Quebre o problema quando a expressão parar de ser legível.
Prática guiada.Leia, rode, quebre e explique cada exercício.
Prática guiada / unidade 16
Um problema de cada vez.
Leia o contrato, escreva sua tentativa e confira os casos esperados. A resolução de referência permanece visível ao final de cada exercício.
isValidEmailSimple(str)
01 / Entenda
Enunciado
valida um formato básico de e-mail
(algo@algo.algo, sem espaços). Não precisa cobrir todos os casos
exóticos do RFC de e-mail — só o suficiente para rejeitar strings
claramente inválidas. Já implementado como exemplo.
02 / Implemente
Sua tentativa
Comece pela assinatura e resolva sem olhar a resposta.
function isValidEmailSimple(str) {
// Escreva sua solução aqui.
}03 / Preveja
Entrada e saída
Use estes exemplos para entender o contrato antes de programar.
Entrada / chamada
isValidEmailSimple("ana@example.com")Retorno esperado
trueEntrada / chamada
isValidEmailSimple("ana@example")Retorno esperado
falseEntrada / chamada
isValidEmailSimple("ana example.com")Retorno esperado
falseEntrada / chamada
isValidEmailSimple("")Retorno esperado
false04 / Teste
Prove que funciona
O teste chama sua função e compara o resultado real com o esperado.
Como utilizar este teste
- 01Implemente a função usando exatamente o nome e os parâmetros do enunciado.
- 02Salve sua implementação em
exercises.js, na mesma pasta do teste. - 03Abra o terminal nessa pasta e execute o comando abaixo.
- 04Se falhar, compare “esperado” com “recebido”; essa diferença mostra o caso que precisa ser corrigido.
node --test --test-name-pattern="isValidEmailSimple" exercises.test.jsComportamentos cobertos
- aceita formato básico usuario@dominio.tld
Ver código completo do teste
test("isValidEmailSimple: aceita formato básico usuario@dominio.tld", () => {
assert.equal(isValidEmailSimple("ana@example.com"), true);
assert.equal(isValidEmailSimple("ana@example"), false);
assert.equal(isValidEmailSimple("ana example.com"), false);
assert.equal(isValidEmailSimple(""), false);
});05 / Compare
Resolução
function isValidEmailSimple(str) {
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(str);
}