JavaScript string.replace 使用 "$$"输出 "$"

标签 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/

相关文章:

java - 如何从带有 html 链接和其他文本的巨大字符串中解析出 html 链接 (Java)

python - python中字符串的所有可能长度k组合

javascript - 由 r.js 驱动的 Node 构建脚本生成的文件似乎没有执行任何操作

Javascript - Canvas - 在先前填充的颜色上覆盖透明的 png

Javascript Int 参数变形 >= 000100

javascript - Yii Form 的 Angular 表单验证

javascript - 如何使用绑定(bind)处理程序两次

从 R 中的字符串中删除\xa0\xa0

c - 在 Windows 上使用 scanf 查找字符串时双击 Ctrl+D 输入

java - 序列计数 - 字符串 java 中的字符