<分区>
谁能向我解释为什么在使用 $$
作为替换值时 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$$
最佳答案
$
充当该函数替换字符串中的元字符。字符串 $$
用于指示您只需要一个 $
。否则,$
后跟一个数字指的是来自正则表达式的捕获组 的内容。例如:
alert("aaabbb".replace(/(a+)(b+)/, "$2$1")); // bbbaaa
字符串“\$\$bye\$\$”与字符串“$$bye$$”完全相同。因为 $
不是 string 语法中的元字符,所以它前面的反斜杠将被忽略。
你可以加倍反斜杠,让它们在字符串常量解析中存活下来,但是 .replace()
函数不会特别注意它们,你会得到 \$\$
在结果中。
关于JavaScript string.replace 使用 "$$"输出 "$",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30546335/