为什么replace()不适用于'$'符号?

Roh*_*hit -1 javascript

我想替换字符串中的所有'$',我使用简单的replace()函数.它适用于其他子字符串但不适用于'$'符号.有什么理由吗?

var mystring = "this,is,a,test"
console.log(mystring.replace(/,/g , ":"));

var mystring2 = "this$is$a$test"
console.log(mystring2.replace(/$/g , ":"));
Run Code Online (Sandbox Code Playgroud)

Bar*_*mar 8

$在正则表达式中有特殊含义,它匹配字符串的结尾.你需要逃避它以字面意思使用它.

var mystring = "this,is,a,test"
console.log(mystring.replace(/,/g , ":"));

var mystring2 = "this$is$a$test"
console.log(mystring2.replace(/\$/g , ":"));
Run Code Online (Sandbox Code Playgroud)

您应该阅读正则表达式教程,如regular-expressions.info中的那个