Java/Js下使用正则表达式匹配嵌套Html标签

js正则表达式替换HTML标签以及空格( )

js代码:

function filter(text) {
  var reg = /<[^<>]+>/g;//1、全局匹配g肯定忘记写,2、<>标签中不能包含标签实现过滤HTML标签
  text = text.replace(reg, '');//替换HTML标签
  text = text.replace(/&nbsp;/ig, '');//替换HTML空格
  return text;
  };

在angularJS中使用过滤器过滤富文本数据

app.filter('qxhtml', function () {
  return function (text) {
   var reg = /<[^<>]+>/g;
   text = text.replace(reg, '');
   text = text.replace(/&nbsp;/ig, '');
   if (text.length > 50) {
    text = text.substring(0, 50) + "...";
   }
   return text;
  };
 });

使用过滤器

<div class="desc">
{{y.Description| qxhtml}}
</div>

下面是其他网友的补充

js如何使用正则表达式实现过滤HTML标签?(/<[^<>]+>/g)

一、总结(点击显示或隐藏总结内容)

js进阶正则表达式实现过滤HTML标签(<>标签中不能包含标签实现过滤HTML标签:/<[^<>]+>/g)

var reg=/<[^<>]+>/g

1、全局匹配g肯定不能忘记写
2、<>标签中不能包含标签实现过滤HTML标签

二、js进阶正则表达式实现过滤HTML标签

实例描述:将一段带有HTML标签的文本的HTML标签过滤掉,转化为纯文本输出

三、代码

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>过滤HTML标签</title>
 <style type="text/css">
  textarea{
   width: 60%;
   font-size: 18px;
   background: rgba(100,200,50,0.3);
  }
  #text2{
   background:rgba(200,100,50,0.3); 
  }
 </style>
</head>
<body>
 <textarea id="text1" rows="10" cols="50"></textarea><br><br>
 <input type="button" id="btn1" value="过滤HTML标签"><br><br>
 <textarea id="text2" rows="10" cols="50"></textarea>
 <script type="text/javascript">
  var btn1=document.getElementById('btn1')
  var text1=document.getElementById('text1')
  var text2=document.getElementById('text2')
  btn1.onclick=function (){
   //var reg=/<.+>/g
   var reg=/<[^<>]+>/g //1、全局匹配g肯定忘记写 2、<>标签中不能包含标签实现过滤HTML标签
   text2.value=text1.value.replace(reg,'')
  }
 </script>
</body>
</html>

js 正则表达式去除html字符中所有的标签(img标签除外)

废话不多说,直接上代码:

description.replace(/<(?!img).*?>/g, "");

如果保留img,p标签,则为:

description.replace(/<(?!img|p|\/p).*?>/g, "");

在js中/需要用转义字符。

通用 HTML 标签区配正则

最近看网站日志,发现有人在博客上转了我不知道几年前写的一个匹配 HTML 标签的正则,刚好最近也在做一些相关的事情,顿时来了兴趣。就拿回来改改,成了下面这样,可能会有一些 case 遗漏,欢迎修改,已知在内嵌 <script> 复杂内容的处理能力较弱,不过对纯 HTML 来说已经够用,拿来做一些分析工具还是不错滴。

<script type="text/javascript"> 
var str = "<br /><br/><br><br ><中文><div><div id=a>无忧脚本<img src=\"http://bbs.51js.com/images/default/logo.gif\" width=\"191\" height='75' border=0 onload=\"if(testver>0 && testver<500)alert('test');\" \n onerror='alert(\"test\")' /><img src=xxx alt=\"hello\njust a test!\"></div><hr ><script type=\"test/javascript\" defer>alert(\"just a test!\");<\/script>Hello.<input type=text value=\"无忧脚本\"><br / ><img \"\" ></ ><!-- 注释 -->< ucren><!-- 再<注>释 --><img alt=' title='\"' /><b>123</b>1<2<3,3<4>1&lt;b&gt;<img src=\"http://bbs.51js.com/images/old51js/logo.gif\" /><!-- 三注释>>> -->"; 
var reg = /<(?:(?:\/?[A-Za-z]\w*\b(?:[=\s](['"]?)[\s\S]*?\1)*)|(?:!--[\s\S]*?--))\/?>/g; 
alert(str.match(reg).join("\n----------------------------------------------------\n")); 
</script> 

在线测试



[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]