Entendendo Expressões Regulares em JavaScript
Expressões regulares são sequências de caracteres que formam um padrão de pesquisa. São utilizadas para encontrar padrões em strings, validar entradas de usuário e realizar substituições em texto. Em JavaScript, as expressões regulares são objetos que possuem métodos para realizar essas operações.
Conceitos Fundamentais
Uma expressão regular é delimitada por barras inclinadas `/` e pode conter caracteres literais misturados com metacaracteres especiais, como `^`, `$`, `*`, `+`, `?`, entre outros.
Exemplo básico de expressão regular:
// Verifica se a string começa com "Hello" const regex = /^Hello/; const result = regex.test('Hello, World!'); console.log(result); // Saída esperada: true
Neste exemplo:
– `/^Hello/`: O `^` indica que o padrão deve iniciar com “Hello”.
– `.test(‘Hello, World!’)`: Método que retorna `true` se o padrão for encontrado.
A expressão verifica se a string começa com “Hello”.
Usando Expressões Regulares para Busca
O método `.match()` é usado para buscar padrões dentro de strings.
Exemplo de busca:
// Busca por todas as ocorrências de números em uma string const text = "Meu número é 1234 e meu código é 5678"; const numbers = text.match(/\d+/g); console.log(numbers); // Saída esperada: ["1234", "5678"]
Neste exemplo:
– `/\d+/g`: `\d` representa qualquer dígito. `+` indica que queremos encontrar um ou mais dígitos consecutivos. `g` é uma flag indicando pesquisa global (encontrar todas as ocorrências).
– `.match(/\d+/g)`: Retorna um array com todas as correspondências encontradas.
Validando Entradas com Expressões Regulares
Podemos usar expressões regulares para validar se uma entrada do usuário está em um formato específico. Um uso comum é a validação de e-mails.
Exemplo de validação de e-mail:
// Verifica se o e-mail está em um formato válido function validarEmail(email) { const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return regex.test(email); } console.log(validarEmail("[email protected]")); // Saída esperada: true console.log(validarEmail("invalido@dominio")); // Saída esperada: false
Neste exemplo:
– `/^[^\s@]+@[^\s@]+\.[^\s@]+$/`: A expressão verifica se o formato do e-mail é válido:
– `^[^\s@]+`: Início do e-mail, não pode conter espaços ou `@`.
– `@[^\s@]+\.[^\s@]+$`: Deve conter um `@` seguido por um domínio.
Substituindo Texto com Expressões Regulares
O método `.replace()` pode ser utilizado para substituir partes de uma string baseando-se em um padrão.
Exemplo de substituição:
// Substitui todas as ocorrências de "foo" por "bar" const text = "foo bar foo"; const newText = text.replace(/foo/g, 'bar'); console.log(newText); // Saída esperada: "bar bar bar"
Neste exemplo:
– `/foo/g`: Expressão que busca todas as ocorrências do padrão “foo”, graças à flag `g`.
– `.replace(/foo/g, ‘bar’)`: Substitui “foo” por “bar” em todas as ocorrências.
Abordagens e Variações
Distintas soluções de expressão regular podem ser aplicadas dependendo da situação:
1. **Busca Case-Sensitive:** Por padrão, as buscas são sensíveis a maiúsculas e minúsculas. Para tornar uma busca case-insensitive, utilize a flag `i`.
// Busca case-insensitive const regex = /hello/i; console.log(regex.test("Hello")); // Saída esperada: true
2. **Captura de Grupos:** As expressões regulares podem capturar partes do texto para posterior uso, utilizando parênteses `()`.
// Captura a primeira palavra const text = "Capturar a primeira palavra"; const match = text.match(/^(\w+)/); console.log(match[1]); // Saída esperada: "Capturar"
Neste exemplo `(\w+)` captura a primeira palavra inteira da string.
Praticar e experimentar diferentes padrões de expressões regulares é essencial para dominar este poderoso recurso de manipulação de strings em JavaScript. Inicie com padrões simples e gradualmente explore expressões mais complexas para atender às suas necessidades.