【发布时间】:2015-05-30 12:43:55
【问题描述】:
谁能向我解释为什么 JavaScript 在使用 $$ 作为替换值时输出单个 $?
"hi".replace("hi", "$$bye$$");
"hi".replace("hi", "\$\$bye\$\$");
//both output -> $bye$
//but I expected $$bye$$
【问题讨论】:
标签: javascript string
谁能向我解释为什么 JavaScript 在使用 $$ 作为替换值时输出单个 $?
"hi".replace("hi", "$$bye$$");
"hi".replace("hi", "\$\$bye\$\$");
//both output -> $bye$
//but I expected $$bye$$
【问题讨论】:
标签: javascript string
$ 充当该函数的替换字符串中的元字符。字符串$$ 用于表示您只需要$。否则,$ 后跟一个数字是指正则表达式中 捕获组 的内容。举个例子:
alert("aaabbb".replace(/(a+)(b+)/, "$2$1")); // bbbaaa
字符串“\$\$bye\$\$”与字符串“$$bye$$”完全相同。因为$ 不是string 语法中的元字符,所以它前面的反斜杠将被忽略。
您可以在反斜杠上加倍以使它们在字符串常量解析中保留下来,但 .replace() 函数不会特别注意它们,您会在结果中得到 \$\$。
【讨论】: