【发布时间】:2015-12-29 12:08:04
【问题描述】:
我在使用正则表达式时偶然发现了$&。如果我使用$1,我会得到与$& 相同的结果。 $& 有什么特别之处,它记录在哪里?
当我在 duckduckgo 或 google 上搜索“正则表达式 +$&”时,我找不到任何相关匹配项。
在下面的示例中,可以使用$1 或$&。 $&有什么特别之处,它为什么存在?
查看fiddle 示例
<div id="quotes">
<ul>
<li>Поехали!
<ul>
<li><b>Let's go!</b></li>
<li>Variant translations: <b>Let's ride!</b></li>
<li><b>Let's drive!</b></li>
<li><b>Off we go!</b></li>
</ul>
</li>
</ul>
<ul>
<li><i>Облетев Землю в корабле-спутнике, я увидел, как прекрасна наша планета. Люди, будем хранить и преумножать эту красоту, а не разрушать её!</i>
<ul>
<li><b>Orbiting Earth in the spaceship, I saw how beautiful our planet is. People, let us preserve and increase this beauty, not destroy it!</b></li>
</ul>
</li>
</ul>
</div>
<script>
var quotes = document.getElementById("quotes"),
html = quotes.innerHTML,
match = /(let)/gi;
// $1 gives same result
quotes.innerHTML = html.replace(match, "<mark>$&</mark>");
</script>
【问题讨论】:
-
$1= 第一组匹配的内容。$&= 整个正则表达式匹配的内容。 -
在哪里可以了解 $& 的工作原理? (文档)
-
@emanciperingsivraren 在MDN page about
replace。 -
@emanciperingsivraren,你可以谷歌
regex "$&" vs "$1":) -
@ndn,我希望我知道我必须在 $& 和 1 周围使用引号才能得到我正在寻找的答案:) 没有它,谷歌不明白我想要它寻找什么。
标签: javascript regex