我想替换字符串中的所有'$',我使用简单的replace()
函数。它适用于其他子字符串但不适用于'$'符号。有什么理由吗?
var mystring = "this,is,a,test"
console.log(mystring.replace(/,/g , ":"));
var mystring2 = "this$is$a$test"
console.log(mystring2.replace(/$/g , ":"));
答案 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 , ":"));