JavaScript.replace заменяет только первое совпадение

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

Но функции замены останавливаются в первом экземпляре "", и я получаю

Результат: "this%20is a test"

Любые идеи о том, где я ошибаюсь, я уверен, что это простое исправление.

Ответ 1

Вам нужно /g там, как это:

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

console.log(result);

Ответ 2

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

Ответ 3

Попробуйте использовать регулярное выражение вместо строки для первого аргумента.

"this is a test".replace(/ /g,'%20')//# = > "this %20is %20a %20test"

Ответ 4

Из w3schools

Метод replace() ищет совпадение между подстрокой (или регулярным выражением) и строкой и заменяет подстроку подстроки новой подстрокой

Было бы лучше использовать здесь регулярное выражение:

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

Ответ 5

Для этого вы должны использовать флаг g для регулярных выражений.... Вот так:

var new_string=old_string.replace( / (regex) /g,  replacement_text);

Это ш

Ответ 6

То же самое, если вам нужно "универсальное" регулярное выражение из строки:

const textTitle = "this is a test";
const regEx = new RegExp(' ', "g");
const result = textTitle.replace(regEx , '%20');