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

时间:2016-07-01 23:16:56

标签: javascript

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

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

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

2 个答案:

答案 0 :(得分:8)

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



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

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




您应该阅读正则表达式教程,例如regular-expressions.info

上的教程

答案 1 :(得分:4)

因为$是正则表达式中的特殊标识符,应该被转义

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