javascript - 正则表达式。删除 <tr> 及其所有内容,直到 tr 标签结束

标签 javascript regex

如果我们使用 jQuery,只需标记 TR 并删除它等等,这是一件小事。但我很好奇如何以严格的正则表达式方式做到这一点......从而操纵 dom。

我有这个:

<tr id="anyName">
    <td>
         // a bunch of html
    </td>
</tr>

如何使用正则表达式将 tr 及其中的所有内容替换为“”。

我有这个:

sometable.replace(".*?","");

我尝试了其他一些方法,但无法使其正常工作。基本上,我希望 tr 及其所有内容消失。我正在使用服务器端模板引擎,它在进入 View 之前处理所有这些数据。因此,我可以将此数据作为字符串保存到此模板逻辑中......然后将其删除......但由于它是字符串,我需要正则表达式来删除它。

有什么想法吗?我觉得我在这里缺少一些非常简单的东西。

最佳答案

问题是<tr>可以嵌套 <tr>里面有标签..

在某些情况下 <tr>标签没有结束标签(XHTML 除外)

因此,即使您在正则表达式中使用奇数模式,正则表达式也无法删除此类标签

因此,请不要为此使用正则表达式

<小时/>

由于您使用的是 jquery,因此您可以使用 remove

$('tr').remove();

或者你可以使用其他服务器端 html 解析器..但不要使用正则表达式..它可能会破坏你的网站

<小时/>

要回答您的问题,您可以使用此正则表达式

 (?s)<tr[^<>]*>(.(?!<tr[^<>]*>))*?</tr>

或在 JavaScript 中

 /<tr[^<>]*>(.(?!<tr[^<>]*>))*?<\/tr>/s

demo

但是等等,你需要不断地替换它,直到它替换掉所有的内容

所以,你需要使用for循环并循环直到它替换所有..

但是如果没有结束标记,这个正则表达式可能会崩溃

关于javascript - 正则表达式。删除 <tr> 及其所有内容,直到 tr 标签结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17416649/

相关文章:

php - 如何通过单击按钮自动发送电子邮件?

java - 将 SQL NUMERIC[10,0] 映射到 java 类型

regex - 如何使用Linux命令提取Fasta文件中的部分文件头

javascript - AJAX自定义错误处理代码问题

java - 接受电话号码的正则表达式

Python正则表达式提取字符串的一部分

python原始字符串转义字符

javascript - 单击html中的链接没有给出响应

javascript - 如何使用 keyup 事件创建复杂的公式

javascript - 解析 JSON 响应时出现问题