⊗jsSpREStri 134 of 294 menu

String com regex em JavaScript

As expressões regulares podem ser representadas na forma de strings. Isso é útil no caso de você precisar fazer inserções de variáveis nas regex, ou formá-las dinamicamente.

Vamos ver um exemplo. Suponha que temos a seguinte string:

let str = 'img.png';

Suponha que a esta string nós aplicamos a seguinte expressão regular:

let reg = /\.(png|jpg)$/; let res = str.match(reg);

Vamos reescrever esta expressão regular na forma de uma string. Isso é feito usando um objeto especial RegExp:

let reg = new RegExp('\\.(png|jpg)$'); let res = str.match(reg);

Agora, vamos extrair parte da regex para uma variável e inseri-la usando concatenação:

let pat = 'png|jpg'; let reg = new RegExp('\\.(' + pat + ')$'); let res = str.match(reg);

E agora, vamos inserir a variável usando strings de template:

let pat = 'png|jpg'; let reg = new RegExp(`\\.(${pat})$`); let res = str.match(reg);

E agora, vamos formar parte da regex a partir de um array:

let exts = ['png', 'jpg']; let pat = exts.join('|'); let reg = new RegExp(`\\.(${pat})$`); let res = str.match(reg);

Problemas Práticos

Extraia os nomes dos domínios de topo para uma variável separada:

let reg = /^[a-z]+\.(ru|by|ua)$/; let res = reg.test(str);

Modifique o problema anterior considerando que os domínios de topo estão armazenados na forma de um array:

let arr = ['ru', 'by', 'ua'];
csazpldanl