正如标题所述,我需要在带有下划线的字符串变量中重新发生所有出现的$符号。
我试过了:
str.replace(new RegExp('$', 'g'), '_');
但这对我不起作用,没有任何东西可以取代。
答案 0 :(得分:47)
RegExp中的$
是一个特殊字符,因此您需要使用反斜杠转义它。
new_str = str.replace(new RegExp('\\$', 'g'), '_');
但是,在JS中,您可以使用更简单的语法
new_str = str.replace(/\$/g, '_');
答案 1 :(得分:8)
您无需使用RegExp
。您可以使用文字语法:
str.replace(/\$/g, '_')
你只需要转义$
字符,因为它是标记字符串结尾的正则表达式中的特殊字符。
修改哦,您也可以使用split
和join
来解决此问题:
str.split("$").join("_")
答案 2 :(得分:1)
........
str.replace(new RegExp('\\$', 'g'), '_');
Becaue $
是js中的特殊字符,你需要逃脱它。
答案 3 :(得分:-4)
您只需要替换一个符号就不需要正则表达式:
newStr = oldStr.replace('$', '_')