Como fazer replace múltiplo utilizando variável como primeiro parametro? – javascript jquery regex
Pergunta:
Quando desejo fazer um replace em todas as ocorrencias de uma string eu faço dessa forma:
var ola= "ola mundo ola mundo";
ola = ola.replace(/ola/g, "xxx");
Resultado: “xxx mundo xxx mundo”;
Porém desejo utilizar uma variável ao invés de colocar a palavra explícita, dessa forma:
var ola= "ola mundo ola mundo";
var variavel= "ola";
ola = ola.replace(/variavel/g, "xxx");
Só que não sei como concatenar isso para funcionar. Já tentei de algumas formas e não funcionou.
Autor da pergunta Joao Paulo
Sergio
Nesse caso tens de criar uma expressão regular usando o construtor para gerar o objeto RegExp:
Exemplo:
var string = "ola mundo ola mundo";
var variavel = "ola";
var regexp = new RegExp(variavel, 'g');
string = string.replace(regexp, "xxx");
alert(string); // dá "xxx mundo xxx mundo"
jsFiddle: http://jsfiddle.net/Ldrynpsf/
Você pode fazer assim:
var ola = "ola mundo ola mundo";
var variavel = "ola";
var re = new RegExp(variavel, 'g');
ola = ola.replace(re, 'xxx');
alert(ola); // xxx mundo xxx mundo
Ao invés de usar /regex/ você pode criar um novo objeto RegExp, dando a possibilidade de passar uma string ou uma variável.
new RegExp(pattern[, flags])
Onde pattern é a expressão regular (nesse caso será uma variável) a ser usada e flags indica os modificadores a serem usados, por exemplo o g global match.



