Pesquisa de site

regex - JavaScript .replace substitui apenas a primeira correspondência


var textTitle = "this is a test"
var result = textTitle.replace(' ', '%20');

Mas as funções de substituição param na primeira ocorrência de " " e eu obtenho o

Resultado: "this%20is a test"

Alguma ideia de onde estou errando? Tenho certeza de que é um conserto simples.

Resposta #1

Você precisa de um /g ali, assim:

var textTitle = "this is a test";
var result = textTitle.replace(/ /g, '%20');

console.log(result);

Você pode brincar com isso aqui, o comportamento padrão do .replace() é substituir apenas a primeira correspondência, o modificador /g (global) indica para substituir todas as ocorrências.

Resposta #2

textTitle.replace(/ /g, '%20');

Artigos relacionados