В следующем тексте:
«123 + 456 + 789»
Как я могу заменить все символы «+» на% 20? Примеры, которые я видел, когда используются регулярные выражения, в конечном итоге рассматривают + как часть правил, используемых в выражении, поэтому кажется, что регулярные выражения использовать нельзя.
@TryingToImprove - Это даст %2B, а не %20



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам просто нужно сначала экранировать +, что делается с помощью обратной косой черты:
const str = "123+456+789";
console.info(
str.replace(/\+/g, '%20')
);То же самое верно для любого символа со специальным значением в регулярном выражении, такого как круглые скобки, *, ^ и т. д. - чтобы соответствовать символу буквальный, поставьте перед ним обратную косую черту. (То же самое для самой обратной косой черты - \\ соответствует буквальной обратной косой черте)
Вы можете добиться этого, используя str replace
str = document.getElementById("mystring").innerHTML;
res = str.replace("+", "%20");
Это заменяет только первый экземпляр. Пример данных в вопросе содержит 2 + в строке.
encodeURIComponent