Javascript 捕获标记的正则表达式

Javascript 捕获标记的正则表达式,javascript,regex,Javascript,Regex,我有下面的html文本,在javascript中,我需要生成所有具有类“page break”的标记“p”,然后将其替换为任何文本 我需要使用正则表达式,因为这个html文本将像文本一样被处理 不像大教堂 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent pellentesque tincidunt adipiscing</p> <p class="page-break">

我有下面的html文本,在javascript中,我需要生成所有具有类“page break”的标记“p”,然后将其替换为任何文本


我需要使用正则表达式,因为这个html文本将像文本一样被处理 不像大教堂

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Praesent pellentesque tincidunt adipiscing</p>

<p class="page-break">break</p>

<p>Suspendisse a velit at diam facilisis
egestas sit amet a lectus.</p>

<p class="page-break">other</p>

<p>Donec tristique placerat massa vitae hendrerit. Maecenas nec
massa adipiscing sem venenatis vehicula. Suspendisse mattis pretium
libero quis dignissim. Nulla volutpat imperdiet vehicula. Donec ut
tristique neque.</p>
Lorem ipsum Door sit amet,是一位杰出的领导者。
Praesent Pellentsque tincidunt Adipising

分页符

在直径面上悬挂一层帆 埃格斯塔坐在一个讲台上

其他

Donec tristique Placelat massa vitae hendrerit。梅塞纳斯nec 马萨·阿迪皮斯·维尼纳蒂斯·卡杜拉。马蹄金悬钩子 自由的尊严。无尾蜗壳,无尾蜗壳。甜甜圈 特里斯蒂克·内克

阻止我使用dom解析器的是,我计划插入一个无效的html元素,我计划将previus html转换成这个,我需要像文本一样解析firt,跳过html验证,然后像这样粘贴它

 <div class="pag visible">
 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    Praesent pellentesque tincidunt adipiscing</p>
 </div>
 <div class="pag">   
    <p>Suspendisse a velit at diam facilisis
    egestas sit amet a lectus.</p>
 </div>
 <div class="pag">   
    <p>Donec tristique placerat massa vitae hendrerit. Maecenas nec
    massa adipiscing sem venenatis vehicula. Suspendisse mattis pretium
    libero quis dignissim. Nulla volutpat imperdiet vehicula. Donec ut
    tristique neque.</p>
 </div>

Lorem ipsum dolor sit amet,是一位杰出的献身者。
Praesent Pellentsque tincidunt Adipising

在直径面上悬挂一层帆 埃格斯塔坐在一个讲台上

Donec tristique Placelat massa vitae hendrerit。梅塞纳斯nec 马萨·阿迪皮斯·维尼纳蒂斯·卡杜拉。马蹄金悬钩子 自由的尊严。无尾蜗壳,无尾蜗壳。甜甜圈 特里斯蒂克·内克


正如您所看到的,每个“.page break”都是replace ir

您想过使用JQuery吗

$('p').hasClass('page-break').html('replacement value goes here');
这将用“替换值在此处”替换
的内容


$('p').hasClass('page-break').remove()
将完全删除
元素。

您想过使用JQuery吗

$('p').hasClass('page-break').html('replacement value goes here');
这将用“替换值在此处”替换
的内容

$('p').hasClass('page-break').remove()
将完全删除
元素。

。改用DOM。如果您有普通字符串,请创建一个
DocumentFragment
,并将其分配给它的
.innerHTML
,以获取DOM

找到带有的
p
标记,检查它们的
.className
,并相应地采取行动。

。改用DOM。如果您有普通字符串,请创建一个
DocumentFragment
,并将其分配给它的
.innerHTML
,以获取DOM


使用找到您的
p
标记,检查它们的
.className
并相应地采取行动。

不建议使用正则表达式解析HTML。您可以使用XPath获取具有指定条件的所有
,并迭代返回的列表,更新每个
文本内容,如下面的代码段所示

var pList = document.evaluate("//p[@class='page-break']", document, null, XPathResult.ANY_TYPE, null);   
var item = pList.iterateNext();  
while (item) {  
    item.textContent = "New Text";
    item = pList.iterateNext();  
}
解释

//p[@class='page-break']
将使用
class='page-break'
获取所有
元素。
document.evaluate
函数将返回类型为
XPathResult
的对象。使用
interateNext()
函数可以获取其元素。
您可以使用
textContent
属性设置新文本

不建议使用正则表达式解析HTML。您可以使用XPath获取具有指定条件的所有
,并迭代返回的列表,更新每个
文本内容,如下面的代码段所示

var pList = document.evaluate("//p[@class='page-break']", document, null, XPathResult.ANY_TYPE, null);   
var item = pList.iterateNext();  
while (item) {  
    item.textContent = "New Text";
    item = pList.iterateNext();  
}
// your content
var content = '<p>Lorem ips...';
// to match any <p> with correspondent class
var regex = /(<p class.?=.?"page-break">.*<\/p>)+/g;
// to replace it with whatever you need:
content.replace(regex, "<p>MY TEXT HERE</p>");
解释

//p[@class='page-break']
将使用
class='page-break'
获取所有
元素。
document.evaluate
函数将返回类型为
XPathResult
的对象。使用
interateNext()
函数可以获取其元素。 您可以使用
textContent
属性设置新文本

//您的内容
// your content
var content = '<p>Lorem ips...';
// to match any <p> with correspondent class
var regex = /(<p class.?=.?"page-break">.*<\/p>)+/g;
// to replace it with whatever you need:
content.replace(regex, "<p>MY TEXT HERE</p>");
var content='Lorem ips…'; //将任何与相应的类匹配 var regex=/(

.*)+/g; //要用您需要的任何东西替换它: content.replace(regex,“mytext HERE

”;

//您的内容
var content='Lorem ips…';
//将任何与相应的类匹配
var regex=/(

.*)+/g; //要用您需要的任何东西替换它: content.replace(regex,“mytext HERE

”;


好故事。你试过什么…你为什么想要正则表达式?javascript有一个相当不错的dom解析器。替换类或替换标记“p”,我需要使用resultar表达式,因为文本将像文本一样处理,而不是像dom一样estructure@eli.rodriguez是什么阻止您使用DOM获取元素,然后“像文本一样”处理innerHTML?好故事。你试过什么…你为什么想要正则表达式?javascript有一个相当不错的dom解析器。替换类或替换标记“p”,我需要使用resultar表达式,因为文本将像文本一样处理,而不是像dom一样estructure@eli.rodriguez是什么阻止您使用DOM获取元素,然后“像文本一样”处理innerHTML?我需要使用正则表达式,因为文本将被处理为与DOM不相似的文本。我需要使用正则表达式,因为文本将被处理为与DOM不相似的文本。我需要使用resultar表达式,因为文本将被处理为与DOM不相似的文本estructure@eli.rodriguez你在浏览器中使用innerHTML格式的字符串到DOM解析器。我更新了描述以解释情况和目标。我需要使用resultar表达式,因为文本将像文本一样处理,而不是像DOM一样estructure@eli.rodriguez您可以在浏览器中使用innerHTML格式的字符串到DOM解析器。我将更新描述为了更好地解释情景和目标,我更新了描述以更好地解释情景和目标。我更新了描述以更好地解释情景和目标