Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式:对模式中匹配结果计数的引用_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式:对模式中匹配结果计数的引用

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

我正在编辑大型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>
<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在
中使用回调。替换
,在那里添加一个计数器。无法从模式中引用替换次数。