javascript - 正则表达式 : reference to matching result count from pattern

标签 javascript regex

我正在编辑大型 html 文件,需要插入 <span id="%d"></span> (其中 %d 是匹配的数量)进入 <p></p>标签。

示例输入:

<p>stack</p>
<p>overflow</p>

期望的输出:

<p><span class="class" id="f=1">stack</p>
<p><span class="class" id="f=2">overflow</p>

匹配<p></p>我使用以下正则表达式来匹配结果: <p>(.*?)<\/p>

之后,匹配替换为: <p><span class="class" id="f=???">$1</span></p>

是否可以引用模式匹配的数量? (“f=???”)

最佳答案

RegEx 无法计算匹配项,因此您必须在 JavaScript 中完成该部分。

var input = "<p>stack</p>\n<p>overflow</p>"

const regex = /<p>(.*?)<\/p>/g;

var count = 0;
var result = input.replace(regex, function(match, contents) {
    ++count;
    return '<p><span class="class" id="f=' + count + '">' + contents + '</span></p>';
});

console.log(result);

console.log(result) 会产生:

<p><span class="class" id="f=1">stack</span></p>
<p><span class="class" id="f=2">overflow</span></p>

关于javascript - 正则表达式 : reference to matching result count from pattern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42829133/

相关文章:

javascript - JavaScript 中的 Bash 命令

java - 正则表达式(Java)

regex - 组合正则表达式

regex - 正则表达式到行尾

javascript - "location.reload(false)"从服务器重新加载页面的可能原因?

javascript - 提示用户将输出下载为 txt 文件

javascript - 如何使以下 .keypress 事件处理程序正常工作?

javascript - Observable toPromise 在调用完整回调之前已解析

JavaScript 围绕大括号拆分

Java replaceAll/用美元符号实例替换字符串