首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于捕获标记的正则表达式

用于捕获标记的正则表达式
EN

Stack Overflow用户
提问于 2012-08-07 23:51:45
回答 4查看 156关注 0票数 0

我有以下html文本,在javascript中,我需要捕获所有具有"page-break“类的标签"p”,然后将其替换为任何文本。

我需要使用正则表达式,因为此html文本将被处理为文本,而不是DOM结构

代码语言:javascript
复制
<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>

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

代码语言:javascript
复制
 <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>

正如您所看到的,每个".page-break“都被替换为ir

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-08 01:14:16

代码语言:javascript
复制
// 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>");

Example

票数 0
EN

Stack Overflow用户

发布于 2012-08-07 23:58:07

Don't use regexp to parse HTML。请改用DOM。如果您有普通字符串,则创建一个DocumentFragment并将其分配给它的.innerHTML以获取DOM。

getElementsByTagName找到你的p标签,检查它们的.className并采取相应的行动。

票数 4
EN

Stack Overflow用户

发布于 2012-08-07 23:56:57

你有没有想过使用JQuery?

代码语言:javascript
复制
$('p').hasClass('page-break').html('replacement value goes here');

这将把<p>的内容替换为“replace value goes here”

否则$('p').hasClass('page-break').remove();将完全删除<p>元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11849622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档