为什么这个代码打印AAC而不是预期A$`C?
console.log('ABC'.replace('B', '$`'));
Run Code Online (Sandbox Code Playgroud)
==>
AAC
Run Code Online (Sandbox Code Playgroud)
以及如何使它达到预期的效果?
bri*_*eje 70
console.log('ABC'.replace('B', "$$`"));
Run Code Online (Sandbox Code Playgroud)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
要插入$,你必须传递$$,因为$`:
插入匹配子字符串之前的字符串部分.
其他模式:

小提琴:
此外,我在上面发布的参考链接上还有更多内容.如果您仍然有任何问题或疑问,您可以在那里找到答案,上面的截图是从答案开头发布的链接中获取的.
编辑:
在我看来,值得一提的是,任何与上述不匹配的模式都不需要转义,因此$不需要转义,同样的故事也会发生$AAA.
在上面的评论中,用户询问为什么你需要用另一个$"逃避"$:尽管我不能确定这一点,但我认为从我们上面所说的,任何无效的模式也值得指出不会被解释,因此我认为(并且怀疑,在这一点上)$$是一个非常特殊的情况,因为它涵盖了你需要用美元符号替换匹配然后"模式锁定"的情况字符,像tick(`)作为一个例子(或真正的&作为另一个).
但在任何其他情况下,美元符号不需要被转义,因此它们可能有意义地决定创建这样一个特定的规则,否则你将需要逃避其他地方的$(我认为这可能会对任何字符串对象产生影响,因为这意味着即使在var a = "hello, $ hey this one is a dollar";你需要逃避它的时候也是如此$.
如果您仍然感兴趣并希望了解更多信息,请查看此信息:
http://www.regular-expressions.info/javascript.html#replace
摆弄更多案件:
http://jsfiddle.net/8kou1z3q/3/
t.n*_*ese 46
在replacement该$美元符号有特殊含义,当从比赛数据应在使用使用replacement.
MDN:String.prototype.replace():将字符串指定为参数
$$插入"$".
$`插入匹配子字符串之前的字符串部分.
只要$不会产生具有特殊含义的组合,那么它将作为常规字符处理.但是你应该总是把它写成$$替换品,否则,如果$x添加新的组合,它将来可能会失败.
| 归档时间: |
|
| 查看次数: |
3065 次 |
| 最近记录: |