Expressões Regulares em TypeScript: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course
```html

Introdução às Expressões Regulares em TypeScript



Expressões regulares (regex) são uma ferramenta poderosa para busca, substituição e validação de strings. Em TypeScript, assim como em JavaScript, elas são implementadas através do objeto embutido RegExp. No entanto, o TypeScript adiciona tipagem estrita, o que torna o trabalho com expressões regulares mais seguro e previsível. Neste artigo, vamos abordar a sintaxe, os métodos, a tipagem e exemplos práticos de uso de expressões regulares em TypeScript.



O que é uma expressão regular?

Uma expressão regular é uma sequência de caracteres que define um padrão de busca. Em TypeScript, as expressões regulares são criadas de duas maneiras:

  • Sintaxe literal: const regex: RegExp = /\\d+/g;
  • Construtor RegExp: const regex: RegExp = new RegExp('\\\\d+', 'g');

A segunda maneira é útil quando o padrão é formado dinamicamente a partir de variáveis.



Métodos principais para trabalhar com expressões regulares em TypeScript



1. Método test() — verificar se há correspondência

O método test() retorna um boolean — se há ou não uma correspondência na string.

const emailRegex: RegExp = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;const email: string = 'user@example.com';

if (emailRegex.test(email)) { console.log('Email é válido');} else { console.log('Email é inválido');}// Saída: Email é válido


2. Método exec() — obter detalhes da correspondência

O método exec() retorna um objeto RegExpExecArray | null. Ele contém a correspondência, os grupos de captura e a posição na string.

const dateRegex: RegExp = /(\\d{2})\\.(\\d{2})\\.(\\d{4})/;const dateString: string = 'Data: 15.03.2023';const match: RegExpExecArray | null = dateRegex.exec(dateString);

if (match) { console.log(`Dia: ${match[1]}, Mês: ${match[2]}, Ano: ${match[3]}`); // Saída: Dia: 15, Mês: 03, Ano: 2023}


3. Método match() — buscar todas as correspondências em uma string

O método de string match() recebe uma expressão regular e retorna um array de correspondências ou null.

const text: string = 'Gatos e gatas são os melhores!';const catRegex: RegExp = /ga[ts]as?/gi;const matches: RegExpMatchArray | null = text.match(catRegex);

if (matches) { console.log(matches); // ['Gatos', 'gatas']}


4. Método replace() — substituição por padrão

O método replace() substitui as correspondências por uma string especificada ou pelo resultado de uma função.

const phone: string = '+7 (123) 456-78-90';const cleanPhone: string = phone.replace(/[\\s\\-\\(\\)\\+]/g, '');console.log(cleanPhone); // 71234567890

// Substituição usando grupos de capturaconst name: string = 'Ivanov Ivan';const reversed: string = name.replace(/(\\w+)\\s(\\w+)/, '$2 $1');console.log(reversed); // Ivan Ivanov


5. Método split() — dividir string

Uma expressão regular pode ser usada para dividir uma string em partes.

const data: string = 'maçã;pera,laranja:banana';const fruits: string[] = data.split(/[;,.:]/);console.log(fruits); // ['maçã', 'pera', 'laranja', 'banana']


Tipagem de expressões regulares em TypeScript



O TypeScript determina automaticamente o tipo da variável como RegExp ao usar a sintaxe literal. No entanto, em projetos complexos, pode ser necessária uma anotação de tipo explícita:

// Indicação explícita de tipoconst hexColor: RegExp = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;

// Tipagem para uma função que retorna RegExpfunction createUrlRegex(baseUrl: string): RegExp { return new RegExp(`^${baseUrl}/[a-z]+$`, 'i');}

const myRegex: RegExp = createUrlRegex('https://example.com');console.log(myRegex.test('ht ```

Blogs

Book Recommendations