如何在javascript中用下划线(_)替换所有出现的美元($)?

Rya*_*son 26 javascript replace

正如标题所述,我需要在带有下划线的字符串变量中重新发生$ sign的所有出现.

我试过了:

str.replace(new RegExp('$', 'g'), '_');
Run Code Online (Sandbox Code Playgroud)

但这对我不起作用,没有任何东西可以取代.

ken*_*ytm 50

$在正则表达式是一个特殊字符,所以你需要用反斜杠逃脱它.

new_str = str.replace(new RegExp('\\$', 'g'), '_');
Run Code Online (Sandbox Code Playgroud)

但是,在JS中,您可以使用更简单的语法

new_str = str.replace(/\$/g, '_');
Run Code Online (Sandbox Code Playgroud)

  • +1,去文字,不要打扰构造函数,除非你需要在正则表达式中使用变量. (2认同)

Gum*_*mbo 8

你不需要使用RegExp.您可以使用文字语法:

str.replace(/\$/g, '_')
Run Code Online (Sandbox Code Playgroud)

你只需要转义$字符,因为它是标记字符串结尾的正则表达式中的特殊字符.


编辑     哦,你也可以使用splitjoin解决这个问题:

str.split("$").join("_")
Run Code Online (Sandbox Code Playgroud)