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