【实例】JS正则表达式提取html中纯⽂本,去掉样式,其它标签
背景
最近遇到需要处理富⽂本粘贴过滤的问题,想着最近也学习了正则表达式,拿着练练⼿,下⾯代码还有需要优化的点,但是觉得对于粘贴过滤基本上 80% 可以⽤吧。
贴⼀下代码:
实现代码
const getParseText=(html: any)=>{
const reg =new RegExp('<.+?>','g');
const msg = place(reg,'');
return msg;
};
// 主函数
const handlePasteText=(html: any)=>{
const reg =new RegExp('<.+?>(.*?)</.+?>','g');
const msg = place(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 = place(reg,(all: any, tag: any, content: any)=>{
if(tag ==='strong'){
return content;
}else{
const res = place(new RegExp('<.+?>','g'),'');
flag =true;
return`<p>${res}</p>`;
}
});
if(flag){
return msg;
}else{
const res = place(new RegExp('<.+?>','g'),'');
return res;
}
};
js中文正则表达式// 主函数
const handlePasteText=(html: any)=>{
const reg =new RegExp('<.+?>(.*?)</.+?>','g');
const msg = place(reg,(all: any, content: any)=>{
return getParseText(content);
});
const res = place(new RegExp('<.+?>','g'),'<p>');
return res;
};
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论