如何用正则表达式去掉html标签
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用正则表达式去掉html标签相关的知识,希望对你有一定的参考价值。
参考技术A 使用正则表达式去掉html标签的方法常用的正则表达式是:/<[^<]+?>/g1、定义含有html标签的字符串:
$text
=
'<p>Test
paragraph.</p><!--
Comment
-->
<a
href="#fragment">Other
text</a>';
2、定义正则表达式并替换
$val
=
preg_replace('/<[^<]+?>/g',
'
',
$row_get_Business['business_description']);
3、截取指定长度
$businessDesc
=
substr(val,0,110);
实例JS 正则表达式提取 html 中纯文本,去掉样式,其它标签
背景
最近遇到需要处理富文本粘贴过滤的问题,想着最近也学习了正则表达式,拿着练练手,下面代码还有需要优化的点,但是觉得对于粘贴过滤基本上 80% 可以用吧。
贴一下代码:
实现代码
const getParseText = (html: any) =>
const reg = new RegExp('<.+?>', 'g');
const msg = html.replace(reg, '');
return msg;
;
// 主函数
const handlePasteText = (html: any) =>
const reg = new RegExp('<.+?>(.*?)</.+?>', 'g');
const msg = html.replace(reg, (all: any, content: any) =>
const text = getParseText(content);
return `<p>$text</p>`;
);
return msg;
;
仅做参考,应该还有未处理到的点,对于网页文字基本粘贴过滤应该是可以的。
欢迎交流
======== 2021/12/28 晚更新============
又有新的考虑点了,更新一下代码:
const getParseText = (html: any) =>
const reg = new RegExp('<(.+?)>(.*?)</.+?>', 'g');
let flag = false;
const msg = html.replace(reg, (all: any, tag: any, content: any) =>
if (tag === 'strong')
return content;
else
const res = content.replace(new RegExp('<.+?>', 'g'), '');
flag = true;
return `<p>$res</p>`;
);
if (flag)
return msg;
else
const res = msg.replace(new RegExp('<.+?>', 'g'), '');
return res;
;
// 主函数
const handlePasteText = (html: any) =>
const reg = new RegExp('<.+?>(.*?)</.+?>', 'g');
const msg = html.replace(reg, (all: any, content: any) =>
return getParseText(content);
);
const res = msg.replace(new RegExp('<.+?>', 'g'), '<p>');
return res;
;
以上是关于如何用正则表达式去掉html标签的主要内容,如果未能解决你的问题,请参考以下文章
向各位正则高手请教:java 如何用正则 ,去除html标签之间的空格
如何用正则表达式匹配除了img标签的所有其他标签 匹配所有html标签我知道: /<[^>]+>/g 关键排除img标签