Expressões Regulares nos Métodos da String - JavaScript

Vários métodos do objeto String podem utilizar expressões regulares como parâmetro.

Método match

Para encontrar todas as correspondências em uma string, utiliza-se o método match():

const initialText = "Ele escreveu um artigo sobre arte moderna.";
const exp = /art[a-z]*/gi;
const result = initialText.match(exp);
result.forEach(value => console.log(value));

// Alternativamente
// console.log(result[0]);
// console.log(result[1]);

O símbolo asterisco indica a possibilidade de existir após a palavra "art" um número indefinido de caracteres de "a" a "z". Assim, o array result conterá as seguintes palavras:

artigo
arte

Por outro lado, este método é semelhante ao método exec() do objeto RegExp, com a exceção de que exec() retorna apenas a primeira ocorrência:

const initialText = "Ele escreveu um artigo sobre arte moderna.";
const exp = /art[a-z]*/gi;
const result = exp.exec(initialText);
result.forEach(value => console.log(value));

O resultado será:

artigo

Divisão de string. Método split

O método split pode usar expressões regulares para dividir strings. Por exemplo, vamos dividir um texto em palavras usando o metacaractere \s:

const initialText = "Hoje o tempo estava maravilhoso";
const exp = /\s/;
const result = initialText.split(exp);
result.forEach(value => console.log(value));

Saída no navegador:

Hoje
o
tempo
estava
maravilhoso

Pesquisa em string. Método search

O método search encontra o índice da primeira correspondência na string:

const initialText = "olá mundo";
const exp = /mun/;
const result = initialText.search(exp);
console.log(result); // 4

Substituição. Método replace

O método replace permite substituir todas as correspondências de uma expressão regular por uma string específica. O primeiro parâmetro é a expressão regular e o segundo é a substituição. Exemplo de substituição:

let menu = "Café da manhã: mingau, chá. Almoço: sopa, chá. Jantar: salada, chá.";
const exp = /chá/gi;
menu = menu.replace(exp, "café");
console.log(menu);

Saída no navegador:

Café da manhã: mingau, café. Almoço: sopa, café. Jantar: salada, café.

Outra forma do método aceita uma função de substituição. Esta função recebe a correspondência da expressão regular e retorna a string substituta. Por exemplo, vamos substituir o chá por café apenas no café da manhã:

let menu = "Café da manhã: mingau, chá. Almoço: sopa, chá. Jantar: salada, chá.";
const exp = /chá/gi;
let i = 0;
menu = menu.replace(exp, function(tee) {
    if(i++ === 0) return "café";
    else return tee;
});
console.log(menu);  // Café da manhã: mingau, café. Almoço: sopa, chá. Jantar: salada, chá.

Utilizamos um contador como indicador de substituição. Se for igual a 0, realizamos a substituição. Nos demais casos, retornamos a correspondência original, "chá".

Caso mais complexo. Suponhamos o seguinte texto:

Publication Date: 2021-09-06
Updated on: 2021-09-14

Aqui usamos datas no formato yyyy-MM-dd. Vamos mudar o formato para "dd.MM.yyyy" com o seguinte programa:

const exp = /\d{4}-\d{2}-\d{2}/g;
let text = "Publication Date: 2021-09-06\nUpdated on: 2021-09-14";

text = text.replace(exp, function(date){
    const arr = date.split("-");
    return `${arr[2]}.${arr[1]}.${arr[0]}`;
});
console.log(text);

Extraímos todas as correspondências da expressão regular /\d{4}-\d{2}-\d{2}/g. No método replace, recebemos a correspondência pelo parâmetro date e usamos a função split() para dividi-lo em três partes pelo hífen, resultando em um array com os componentes da data. Então, retornamos a data em outro formato:

Publication Date: 06.09.2021
Updated on: 14.09.2021
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com