IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 截取带标签字符串个数再返回 -> 正文阅读

[开发工具]截取带标签字符串个数再返回

背景:转发微博//@游向王者目标:网友翻出<font color='red'>杨</font><font color='red'>丽</font><font color='red'>萍</font>35岁时的视频,视频中的<font color='red'>杨</font><font color='red'>丽</font><font color='red'>萍</font>好港好美,就算是将妆容放到现在也是复古时髦look#<font color='red'>杨</font><font color='red'>丽</font><font color='red'>萍</font><font color='red'>宣布</font><font color='red'>云南</font><font color='red'>映象</font><font color='red'>演出团队</font><font color='red'>解散</font>#游向王者目标的微博视频如上面所示字符串,由于展示计算问题,现在需要截取其中指定个数的文字,并且截取后是要带字符串的,怎么处理?
分析: 要实现上述要求,想到两种方式:方式一:对字符串进行循环匹配,当遇到<font>标签时,直接提取其中内容加上,如果加上后字数不足所要的,继续向后,如果超过所要的,向前再减去相应字数。方式二:将字符串转化为纯文本,截取对应字数的内容,再将<font>标签中的内容提取出来,与字符串进行匹配,若匹配到,则将内容替换成带标签的内容。
由于方式一性能过于差,最后取用方式二。
实现:

 const content = "转发微博//@游向王者目标:网友翻出<font color='red'>杨</font><font color='red'>丽</font><font color='red'>萍</font>35岁时的视频,视频中的<font color='red'>杨</font><font color='red'>丽</font><font color='red'>萍</font>好港好美,就算是将妆容放到现在也是复古时髦look#<font color='red'>杨</font><font color='red'>丽</font><font color='red'>萍</font><font color='red'>宣布</font><font color='red'>云南</font><font color='red'>映象</font><font color='red'>演出团队</font><font color='red'>解散</font>#游向王者目标的微博视频"
 const wordsCount = 10
//将带标签的内容处理为纯文本
 const ele = document.createElement('div');
 ele.innerHTML = content;
 const plainText = ele.innerText;
// 将带标签的关键词提取出
 let hightKeywords = [...new Set(Array.from(content.matchAll(/<font.+?>(.+?)<\/font>/g)).map(item => item[1]).filter(item => item))];
// 要返回的纯文字内容
 let limitContent = `${plainText.slice(0, wordsCount)}...`;
// 将关键词进行转义
 hightKeywords = hightKeywords.map(item => item.replace(/[.*+?^${}()| [\]\\]/g, '\\$&')).join('|');
// 回填标签
 limitContent = limitContent.replace(new RegExp(`(${hightKeywords})`, 'g'), (match) => `<font color='red'>${match}</font>`);
 return limitContent;
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:56:36  更:2022-05-09 12:57:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 6:03:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码