javascript - 正则表达式去除所有 html 标签,不包括 <br> & <a class ='user' ></a>

标签 javascript html regex tags

我对正则表达式比较陌生,但我的目标是从不包括 <br> 的字符串中去除所有 html 标签s 和 <a>带有 class='user' 的标签。我想使用此正则表达式从 contentedittable 字段中清除不需要的 html 垃圾。

希望你们中的一位正则表达式大师可以帮助...

这是一个测试示例: http://gskinner.com/RegExr/?2tpai

我想我已经接近了,但是 a class='user' 的结束标记目前在需要时仍被选为垃圾。

最佳答案

正式来说你can't parse HTML with regex ,因为 HTML is not a regular language .另见 Can you provide some examples of why it is hard to parse XML and HTML with a regex?对于一些噩梦 Material 。

毫无疑问,您可以想出一些适用于“大多数”情况或“合理”情况的正则表达式,但如果您通过正则表达式清理用户输入,这还不够。距离尝试通过精心设计的文本替换和转义来替换 SQL 参数不到一百万英里;无论您多么聪明,正确的答案是使用不同的方法,因为一些弱点仍然存在。

在这种情况下,该方法将使用 HTML 解析库来读取文本,然后删除 <br><a>来自已解析 DOM 的标签。 (这比尝试从原始文本中删除一系列字符要强大得多,并且可能还会创建更易于理解的源代码!)。事实上,由于您可能在客户端中谈论 JS,您已经拥有可用的 DOM,由浏览器预先解析,因此这将是一个简单的操作。

如果您不熟悉 JavaScript 的 DOM 操作方法,我认为 quirksmode intro平易近人且信息丰富。

关于javascript - 正则表达式去除所有 html 标签,不包括 <br> & <a class ='user' ></a>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6027643/

相关文章:

javascript - 为每个选定元素设置不同的超时

Javascript正则表达式替换下一个匹配

Javascript 分割文本和正则表达式

javascript - 更改 &lt;textarea&gt; 的值并允许用户撤消

javascript - 如何使一个网页上的多个图像加载到模态

java - 如何使用正则表达式来匹配多行与不情愿

javascript - 从 Java android 调用 AngularJs Controller 函数

javascript - 使用push方法向对象添加条件

javascript - Nodegit 如何获取新的分支列表?

javascript - 在某些条件下显示 js 警报