Вам действительно не нужен обратный слеш внутри вашего регулярного выражения.
'String with spaces'.replace(/ /g, '$20');
Кроме того, было бы неплохо заменить все пробелы на % 20 . К счастью, для этого есть специальная группа символов в регулярных выражениях - \ s .
'String with spaces and tabs'.replace(/\s/g, '%20');