Как следует из заголовка, мне нужно связать все вхождения знака $ в строковой переменной с подчеркиванием.
Я пробовал:
str.replace(new RegExp('$', 'g'), '_');
Но это не работает для меня, и ничто не заменяется.
$ в RegExp - это специальный символ, поэтому вам нужно экранировать его обратной косой чертой.
$
new_str = str.replace(new RegExp('\\$', 'g'), '_');
однако в JS вы можете использовать более простой синтаксис
new_str = str.replace(/\$/g, '_');
Вам не нужно использовать RegExp. Вы можете использовать буквальный синтаксис:
RegExp
str.replace(/\$/g, '_')
Вам просто нужно экранировать символ $, так как он является специальным символом в регулярных выражениях, отмечающим конец строки.
Редактировать О, вы также можете использовать split и join для решения этой проблемы:
split
join
str.split("$").join("_")
........
str.replace(new RegExp('\\$', 'g'), '_');
Becaue $ - это специальный символ в js, вам нужно убежать от него.
Вам не нужны регулярные выражения только для замены одного символа:
newStr = oldStr.replace('$', '_')