【问题标题】:JavaScript string.replace using "$$" outputs "$" [duplicate]JavaScript string.replace 使用“$$”输出“$”[重复]
【发布时间】:2015-05-30 12:43:55
【问题描述】:

谁能向我解释为什么 JavaScript 在使用 $$ 作为替换值时输出单个 $

"hi".replace("hi", "$$bye$$");
"hi".replace("hi", "\$\$bye\$\$");

//both output -> $bye$
//but I expected $$bye$$

【问题讨论】:

标签: javascript string


【解决方案1】:

$ 充当该函数的替换字符串中的元字符。字符串$$ 用于表示您只需要$。否则,$ 后跟一个数字是指正则表达式中 捕获组 的内容。举个例子:

alert("aaabbb".replace(/(a+)(b+)/, "$2$1")); // bbbaaa

字符串“\$\$bye\$\$”与字符串“$$bye$$”完全相同。因为$ 不是string 语法中的元字符,所以它前面的反斜杠将被忽略。

您可以在反斜杠上加倍以使它们在字符串常量解析中保留下来,但 .replace() 函数不会特别注意它们,您会在结果中得到 \$\$

【讨论】:

    猜你喜欢
    • 2020-07-13
    • 2018-02-23
    • 2013-08-11
    • 2020-02-29
    • 1970-01-01
    • 2014-04-17
    • 2012-10-27
    • 1970-01-01
    • 2019-02-24
    相关资源
    最近更新 更多