Javascript 正则表达式:对模式中匹配结果计数的引用
我正在编辑大型html文件,需要将Javascript 正则表达式:对模式中匹配结果计数的引用,javascript,regex,Javascript,Regex,我正在编辑大型html文件,需要将(其中%d是匹配数)插入标记中 样本输入: <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>stack</p
(其中%d
是匹配数)插入
标记中
样本输入:
<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>stack</p>
<p>overflow</p>
<p><span class="class" id="f=1">stack</p>
<p><span class="class" id="f=2">overflow</p>
堆栈
溢出
为了匹配
我使用以下正则表达式来匹配结果:
(.*)
之后,用以下内容替换匹配项:
1美元
是否可以参考模式中的匹配数?(“f=?”不建议使用正则表达式解析HTML:
相反,使用内容生成DOM元素并更新
p
标记
var str=`stack
溢出`;
//生成一个临时div元素
var temp=document.createElement('div');
//设置html内容
temp.innerHTML=str;
//获取所有p标记并转换为数组
//对于较旧的浏览器,请使用[].slice.call(…)
数组.from(临时querySelectorAll('p'))
//迭代元素
.forEach(功能(ele,i){
//更新内容
ele.innerHTML=''+ele.innerHTML+'';
});
//获取html内容
log(temp.innerHTML)代码>RegEx无法计算匹配项,因此您必须在JavaScript中完成这一部分
var-input=“堆栈\n溢出”
常量正则表达式=/(.*)/g;
var计数=0;
var result=input.replace(正则表达式,函数(匹配,内容){
++计数;
返回“”+内容+””;
});
控制台日志(结果)代码>使用特定于语言的方法。添加了javascript
tag在中使用回调。替换
,在那里添加一个计数器。无法从模式中引用替换次数。