Как я могу заменить все случаи доллара ($) с подчеркиванием (_) в JavaScript?

Как заголовок указывает, я должен повторно наброситься, все случаи $ входят в систему строковая переменная с подчеркиванием.

Я попробовал:

str.replace(new RegExp('$', 'g'), '_');

Но это не работает на меня, и ничто не заменяется.

26
задан Ryan Tomlinson 12 March 2010 в 17:05
поделиться

4 ответа

$ в RegExp является специальным символом, поэтому его нужно экранировать обратным слешем.

new_str = str.replace(new RegExp('\\$', 'g'), '_');

Однако в JS можно использовать более простой синтаксис

new_str = str.replace(/\$/g, '_');
50
ответ дан 28 November 2019 в 06:55
поделиться

........

str.replace(new RegExp('\\$', 'g'), '_');

Becaue $ - это специальный символ в js, вам нужно его избежать.

1
ответ дан 28 November 2019 в 06:55
поделиться

Вам не нужно использовать RegExp. Вы можете использовать литеральный синтаксис:

str.replace(/\$/g, '_')

Вам просто нужно экранировать символ $, поскольку это специальный символ в регулярных выражениях, который отмечает конец строки.


Edit О, вы также можете использовать split и join для решения этой задачи:

str.split("$").join("_")
8
ответ дан 28 November 2019 в 06:55
поделиться

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

 newStr = oldStr.replace('$', '_')
-4
ответ дан 28 November 2019 в 06:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: