JSON—去除JSON数据中的所有HTML标…

删除了图片。。。直接贴代码。。
package com.linoer.utils;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**

 * HTML

 * 

 * @author linoer

 * 

 */
public class HTMLSpirit {
	/**

	 * 去掉所有的HTML标签

	 * 

	 * @param htmlStr

	 * @return

	 */
	public static String delHTMLTag(String htmlStr) {
		String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定义script的正则表达式

		String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; // 定义style的正则表达式

		String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式


		Pattern p_script = Pattern.compile(regEx_script,
				Pattern.CASE_INSENSITIVE);
		Matcher m_script = p_script.matcher(htmlStr);
		htmlStr = m_script.replaceAll(""); // 过滤script标签


		Pattern p_style = Pattern
				.compile(regEx_style, Pattern.CASE_INSENSITIVE);
		Matcher m_style = p_style.matcher(htmlStr);
		htmlStr = m_style.replaceAll(""); // 过滤style标签


		Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
		Matcher m_html = p_html.matcher(htmlStr);
		htmlStr = m_html.replaceAll(""); // 过滤html标签


		return htmlStr.trim().replaceAll(" ", ""); // 返回文本字符串

	}

	/**

	 * 从HTML获取图片url

	 * @param htmlStr

	 * @return

	 */
	public static List<String> getImgStr(String htmlStr) {
		String img = "";
		Pattern p_image;
		Matcher m_image;
		List<String> pics = new ArrayList<String>();

		String regEx_img = "<img.*src=(.*?)[^>]*?>"; // 图片链接地址

		p_image = Pattern.compile(regEx_img, Pattern.CASE_INSENSITIVE);
		m_image = p_image.matcher(htmlStr);
		while (m_image.find()) {
			img = img + "," + m_image.group();
			Matcher m = Pattern.compile("src=\"?(.*?)(\"|>|\\s+)").matcher(img); // 匹配src

			while (m.find()) {
				pics.add(m.group(1));
			}
		}
		return pics;
	}
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 JavaScript 的 filter() 方法来筛选出符合条件的数据,然后将它们展现到页面上。具体实现方法可以参考以下代码: // 假设你的数据数组名为 jsonData,搜索框的 ID 为 searchInput,展示数据的 ID 为 dataDisplay const jsonData = [ { name: '张三', age: 20, gender: '男' }, { name: '李四', age: 25, gender: '女' }, { name: '王五', age: 30, gender: '男' }, { name: '赵六', age: 35, gender: '女' } ]; const searchInput = document.getElementById('searchInput'); const dataDisplay = document.getElementById('dataDisplay'); searchInput.addEventListener('input', function() { const keyword = this.value.trim(); // 获取搜索框输入的关键词并去除首尾空格 const filteredData = jsonData.filter(function(item) { // 使用 filter() 方法筛选出符合条件的数据 return item.name.includes(keyword) || item.age.toString().includes(keyword) || item.gender.includes(keyword); }); // 将筛选出的数据展现到页面上 dataDisplay.innerHTML = filteredData.map(function(item) { return `<div>${item.name},${item.age}岁,${item.gender}</div>`; }).join(''); }); 当用户在搜索框输入关键词时,会触发 input 事件,然后我们使用 filter() 方法筛选出符合条件的数据,并使用 map() 方法将它们转换成 HTML 代码,最后使用 join() 方法将它们拼接成一个字符串,然后将这个字符串赋值给 dataDisplay 元素的 innerHTML 属性,即可展现到页面上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值