关于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));
目录
相关文章
|
8月前
|
移动开发 HTML5
HTML5标签的类型
HTML5标签的类型。
168 5
|
7月前
|
移动开发 搜索推荐 UED
HTML5的新语义化标签
HTML5引入的这些新语义化标签,通过明确标识内容的结构和意义,使得网页结构更加清晰,易于理解和维护。使用这些标签不仅提升了网页的可读性和可访问性,还增强了搜索引擎和辅助技术对网页内容的解析能力。在实际开发中,合理使用这些语义化标签,能够显著提升网页的质量和用户体验。
202 49
|
10月前
|
数据采集 移动开发 前端开发
HTML代码的革命:语义化标签的魅力,让你的网页结构焕然一新!
【8月更文挑战第26天】本文探讨了Web前端开发中的语义化标签概念及其重要性。语义化标签通过使用具有明确含义的HTML标签来构建页面结构,提升了网页的可访问性及搜索引擎优化效果,并增强了代码的可读性和维护性。文章还讨论了实际开发中遇到的问题及未来发展趋势。
167 0
|
7月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
192 5
|
7月前
|
移动开发 编解码 UED
除了 `<audio>` 和 `<video>` 标签,HTML5 还支持哪些多媒体格式?
【10月更文挑战第19天】HTML5对多种多媒体格式的支持,为网页开发者提供了丰富的选择,能够更好地满足不同类型多媒体内容在网页中的展示和交互需求,提升了网页的用户体验和多媒体应用的多样性。
|
8月前
|
前端开发
【HTML】img标签和超链接标签
【HTML】img标签和超链接标签
125 2
|
8月前
|
移动开发 前端开发 JavaScript
【HTML】HTML页面和常见标签
【HTML】HTML页面和常见标签
92 1
|
7月前
|
存储 移动开发 前端开发
|
9月前
|
前端开发 Windows
【前端web入门第一天】02 HTML图片标签 超链接标签 音频标签 视频标签
本文档详细介绍了HTML中的图片、超链接、音频和视频标签的使用方法。首先讲解了`&lt;img&gt;`标签的基本用法及其属性,包括如何使用相对路径和绝对路径。接着介绍了`&lt;a&gt;`标签,用于创建超链接,并展示了如何设置目标页面打开方式。最后,文档还涵盖了如何在网页中嵌入音频和视频文件,包括简化写法及常用属性。
169 13
|
9月前
|
前端开发
前端基础(二)_HTML常用标签(块级标签、行级标签、行块级标签)
本文详细介绍了HTML中的常用标签,包括块级标签(如`h1`至`h6`、`p`、`div`等)、行级标签(如`span`、`b`、`strong`、`i`、`em`、`sub`、`sup`、`del`、`a`等),以及行块级标签(如`img`)。文章解释了这些标签的用途、特点和基本用法,并通过示例代码展示了如何在HTML文档中使用它们。
624 1