关于Android中如何过滤HTML标签

简介: 关于Android中如何过滤HTML标签

我们在开发过程中难免遇到与JS交互问题,在交互过程中我们从H5页面取出的数据带有HTML标签,这不是我们想要的,但是如何过滤掉呢?有两种方式:

第一:调用Java方法直接过滤

这种方式比较繁琐,需要一条一条的过滤,不是很优雅,因为我们无法保证每次页面的标签都是一致的,代码如下:

String content = data.getNoteContent();//content含有HTML标签
content = content.replace("<em>", "");
content = content.replace("</em>", "");
content = content.replace("<br>", "\n");
content = content.replace("</br>", "");
content = content.replace("&nbsp;", " ");
content = content.replace("<div>", "\n");
content = content.replace("</div>", "");
content = content.replace("<p>", "");
content = content.replace("</p>", "");
noteContent.setText(content);

最后的content就是没有带标签的

第二:使用正则表达式过滤

这是最理想的,不管你页面如何变,有多少标签,我只需调用一个方法解决,杠杠的代码如下:

 /**
 * 定义script的正则表达式  
 */
private static final String REGEX_SCRIPT = "<script[^>]*?>[\\s\\S]*?<\\/script>"; 
/**
 * 定义style的正则表达式
 */
private static final String REGEX_STYLE = "<style[^>]*?>[\\s\\S]*?<\\/style>";
/**
 * 定义HTML标签的正则表达式
 */
private static final String REGEX_HTML = "<[^>]+>"; 
/**
 * 定义空格回车换行符  
 */
private static final String REGEX_SPACE = "\\s*|\t|\r|\n";
public static String delHTMLTag(String htmlStr) { 
   // 过滤script标签  
    Pattern p_script = Pattern.compile(REGEX_SCRIPT, Pattern.CASE_INSENSITIVE);  
    Matcher m_script = p_script.matcher(htmlStr);  
    htmlStr = m_script.replaceAll(""); 
    // 过滤style标签  
    Pattern p_style = Pattern.compile(REGEX_STYLE, Pattern.CASE_INSENSITIVE);  
    Matcher m_style = p_style.matcher(htmlStr);  
    htmlStr = m_style.replaceAll(""); 
    // 过滤html标签
    Pattern p_html = Pattern.compile(REGEX_HTML, Pattern.CASE_INSENSITIVE);  
    Matcher m_html = p_html.matcher(htmlStr);  
    htmlStr = m_html.replaceAll("");   
    // 过滤空格回车标签  
    Pattern p_space = Pattern.compile(REGEX_SPACE, Pattern.CASE_INSENSITIVE);  
    Matcher m_space = p_space.matcher(htmlStr);  
    htmlStr = m_space.replaceAll(""); 
    return htmlStr.trim(); // 返回文本字符串  
   }  

调用的时候非常方便,如下:

String content = data.getNoteContent();//content含有HTML标签 
 
noteContent.setText(GlobalInfo.delHTMLTag(content));
目录
相关文章
|
5月前
|
移动开发 HTML5
HTML5标签的类型
HTML5标签的类型。
109 5
|
4月前
|
移动开发 搜索推荐 UED
HTML5的新语义化标签
HTML5引入的这些新语义化标签,通过明确标识内容的结构和意义,使得网页结构更加清晰,易于理解和维护。使用这些标签不仅提升了网页的可读性和可访问性,还增强了搜索引擎和辅助技术对网页内容的解析能力。在实际开发中,合理使用这些语义化标签,能够显著提升网页的质量和用户体验。
118 49
|
7月前
|
数据采集 移动开发 前端开发
HTML代码的革命:语义化标签的魅力,让你的网页结构焕然一新!
【8月更文挑战第26天】本文探讨了Web前端开发中的语义化标签概念及其重要性。语义化标签通过使用具有明确含义的HTML标签来构建页面结构,提升了网页的可访问性及搜索引擎优化效果,并增强了代码的可读性和维护性。文章还讨论了实际开发中遇到的问题及未来发展趋势。
100 0
|
4月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
97 5
|
4月前
|
移动开发 编解码 UED
除了 `<audio>` 和 `<video>` 标签,HTML5 还支持哪些多媒体格式?
【10月更文挑战第19天】HTML5对多种多媒体格式的支持,为网页开发者提供了丰富的选择,能够更好地满足不同类型多媒体内容在网页中的展示和交互需求,提升了网页的用户体验和多媒体应用的多样性。
|
5月前
|
前端开发
【HTML】img标签和超链接标签
【HTML】img标签和超链接标签
87 2
|
5月前
|
移动开发 前端开发 JavaScript
【HTML】HTML页面和常见标签
【HTML】HTML页面和常见标签
62 1
|
4月前
|
存储 移动开发 前端开发
|
6月前
|
前端开发
前端基础(二)_HTML常用标签(块级标签、行级标签、行块级标签)
本文详细介绍了HTML中的常用标签,包括块级标签(如`h1`至`h6`、`p`、`div`等)、行级标签(如`span`、`b`、`strong`、`i`、`em`、`sub`、`sup`、`del`、`a`等),以及行块级标签(如`img`)。文章解释了这些标签的用途、特点和基本用法,并通过示例代码展示了如何在HTML文档中使用它们。
344 1
|
6月前
|
移动开发 开发者 UED
HTML5中video标签controlslist属性的使用方法
`controlsList`属性为开发者提供了更多控制HTML5视频播放器行为的能力,让视频内容的集成更加灵活和符合需求。通过精心设计的控制列表,可以提升用户体验,同时保持内容的安全性和专业性。这种细节的控制和定制能力是现代Web开发的一个重要方面,反映了HTML5对开发者和内容创作者需求的响应。
582 1

热门文章

最新文章

  • 1
    Android历史版本与APK文件结构
  • 2
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 3
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 4
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 5
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 6
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 7
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
  • 8
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 9
    即时通讯安全篇(一):正确地理解和使用Android端加密算法
  • 10
    Android实战经验之Kotlin中快速实现MVI架构