RegExp()
Referência prática da função RegExp() em JavaScript
Utilizando-se do construtor RegExp()
podemos compilar a expressão regular antes de usá-la.
Isso é uma vantagem? Não exatamente.
Caso sua expressão esteja sintaticamente errada o erro existirá como nos demais exemplos e seu código irá travar.
Uma vantagem seria o fato de ser possível criar a expressão regular a partir de uma string, isto quer dizer que é possível criar a expressão de forma dinâmica.
Imagine que o usuário irá digitar a palavra “exemplo” e o sistema armazenará o valor na variável regexp
.
Agora é só passar a variável para o construtor e executar a expressão regular.
Resumindo, a expressão regular criada a partir de uma string lhe derá mais flexibilidade.
var string = "Casa com a palavra exemplo",
pattern = {},
regexp = /exemplo/;
// pattern.test
pattern = new RegExp(regexp);
console.log(pattern.test(string)); // true
// pattern.exec
pattern = new RegExp(regexp);
console.log(pattern.exec(string)); // ["exemplo", 19, "Casa com a palavra exemplo"]
// string.match
pattern = new RegExp(regexp);
console.log(string.match(pattern)); // ["exemplo", 19, "Casa com a palavra exemplo"]
Uma vez com a expressão regular compilada podemos executá-la em qualquer uma das três formas já discutidas: test(), exec() e match().