【JS】替换文本为emjio表情

最终效果展示

T1

在这里插入图片描述

T2

在这里插入图片描述

T3

在这里插入图片描述

T4

在这里插入图片描述

需求

  • 把评论你好帅啊啊啊[开心][开心][开心] 替换为图片

思路

  1. 正则match提取[开心]到一个数组
  2. 数组去重
  3. 创建img标签
  4. img标签转文本. 。例:(el.outerHTML),将el元素转文本
  5. 字符串replaceAll方法替换表情文本为标签转换的文本
  6. 使用innerHTML渲染到页面

<div id='em'></div>
<script>
// emjio列表
const emjioList = [
    {
        name: '[开心]',
        src: 'public/emjio/1678782525035.gif'
    },
    {
        name: '[对不起]',
        src: 'public/emjio/1678782526027.gif'
    },
    // ..................................
]

/**  数组去重
 * @param {Array} arr 去重的数组
 * @returns 返回去重的数组
 */
const noReArr = (arr) => [...new Set(arr)]

let 评论 = '你好帅啊啊啊[开心][开心]'
//1.正则提取表情 
const reg = new RegExp("\\[.*?]", "gi");
//2. 开始提取
const emjioStrArr = 评论.match(reg);
// 3. 数组去重
const noRepEmjioArr = noReArr(emjioStrArr) 

//6. 遍历表情
noRepEmjioArr.forEach(it => {
// 4. 创建img标签
const createImg = document.createElement("img");   

// 5. 找到对应表情图片地址
const { src } = emjioList.find(it2 => it2.name === it);
// 6. 设置表情图片地址
createImg.src = src 

// 7. img标签转字符串
const imgElToString = createImg.outerHTML;

// 8.替换表情为img标签字符串
评论 = 评论.replaceAll(it, imgElToString);
});

// 9.将替换的字符渲染到id为em的元素里
document.getElementById('em').innerHTML = 评论
</script>

效果图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/475700.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TikTok运营要用什么样的IP?怎么选择?

对于运营TikTok的从业者来说&#xff0c;IP的重要性自然不言而喻。 在其他条件都正常的情况下&#xff0c;拥有一个稳定&#xff0c;纯净的IP&#xff0c;你的视频起始播放量很可能比别人高出不少&#xff0c;而劣质的IP轻则会限流&#xff0c;重则会封号。那么&#xff0c;如何…

jQuery 选择器--获取元素

文章目录 1 jQuery 基础选择器2 层级选择器3 隐式迭代(重要)4 jQuery 筛选选择器5 jQuery 筛选方法(重点)案例--下拉菜单 6 jQuery 排他思想*案例--左右Tab栏切换 7 jQuery 链式编程 1 jQuery 基础选择器 2 层级选择器 3 隐式迭代(重要) 示例&#xff1a; 4 jQuery 筛选选择器…

万亿参数大模型网络怎么建?GTC 2024立了个标杆

​多年来&#xff0c;NVIDIA一直在面向AI的数据中心方面布局&#xff0c;随着大模型与生成式AI的到来&#xff0c;NVIDIA也为大模型AI智算中心立了个Flag&#xff0c;这就是黄仁勋近两年来经常挂在嘴边上的“AI工厂”。 早在2022年9月的GTC大会上&#xff0c;黄仁勋就预测数据…

MavenGit

Maven Maven的功能 1.管理jar包 2.Maven也支持编译、测试、打包发布和安装等功能 Maven的下载安装 1.Maven官方地址&#xff1a;Maven – Download Apache Maven 2.Maven的配置 1&#xff09;配置环境变量 2&#xff09;配置本地仓库 3&#xff09;配置镜像 关于pom.…

每日一题 --- 27. 移除元素 - 力扣 [Go]

移除元素 题目&#xff1a; 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不…

视频素材库app哪里找?收藏以下短视频素材网站

嗨&#xff0c;视频创作达人们&#xff01;你们是不是在寻找那些高质量的视频素材库app&#xff1f;别担心&#xff0c;今天我就给你们推荐几个超棒的app&#xff0c;让你的视频创作更加出彩&#xff01; 蛙学网&#xff1a;视频素材库app推荐当然少不了蛙学网啦&#xff01;这…

图论基础|695. 岛屿的最大面积、1020. 飞地的数量、130. 被围绕的区域

695. 岛屿的最大面积 力扣题目链接(opens new window) 给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合&#xff0c;这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0&#xff0…

一、Java中SpringCloud组件集成接入【Nacos服务管理】

一、Java中SpringCloud组件集成接入【Nacos服务】 1.Nacos介绍2.搭建Nacos服务2.1Windows部署2.2Linux和Docker部署 3.Nacos可视化操作4.Java集成Nacos5.常见问题5.1将nacos变量读取到程序中作为全局变量 6.参考文章 1.Nacos介绍 Nacos是一个开源的动态服务发现、配置管理和服…

pyvista可视化加强版

增加了一个随机按钮&#xff0c;可以即时切换case可视化 import os import glob import randomimport pyvista as pvdef display_multi_meshes(meshes: list, titlesNone, point_size3, opacity0.9):num len(meshes)for i in range(num):pl.subplot(0, i)if i 2:pl.add_che…

动态规划--子序列问题(一)

一.什么是子序列问题 我们之前已经学习过子数组问题,子数组问题最大的特点就是求一段连续区间的xxxx,子数组问题的经典的状态表示就是以i位置为结束,xxxx,推导状态转移方程的一个经验是根据数组的结构来区分不同的结构 子序列问题本质上是对子数组问题的一个拓展,或者说子序列…

微信怎样群发更高效?

群发是指通过微信平台对特定受众进行大规模信息发布的过程&#xff0c;如节日祝福、活动促销等。随着科技的不断发展&#xff0c;群发的定义已不再仅限于手机信息群发或短信群发。如今&#xff0c;微信内置的群发功能也被广泛应用。 一、微信群发的操作步骤 1. 进入微信&…

C++入门(下)

文章目录 1:引用1.1:引用概念1.2:引用的特性.1.2.1:引用在定义时必须初始化1.2.2:一个变量可以有多个引用1.2.3:引用一旦引用一个实体,再不能引用其他实体. 1.3:应用场景1.3.1:做参数1.3.2:做返回值1.3.2.1:传值返回1.3.2.2:传引用返回(错误示范)1.3.2.3:传引用返回(正确示范) …

Shell脚本学习-if循环

最小化的if语句 无实际用途 if [ ] ;then echo fi 脚本解释 if 判断 [ ] 里面的条件是否成立 后面跟then&#xff0c;代表条件成立 如果在一行则使用分号隔离&#xff08;;&#xff09; 如果不在一行使用则直接在下一行驶入then即可。 如果条件成立则输出echo 后面…

鸿蒙Harmony应用开发—ArkTS-全局UI方法(日期滑动选择器弹窗)

根据指定的日期范围创建日期滑动选择器&#xff0c;展示在弹窗上。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 本模块功能依赖UI的执行上下文&#xff0c;不可在UI上下文不明确的地方使用&…

zabbix企业微信的告警媒介配置

简介&#xff1a; Zabbix企业微信告警媒介可用于向特定群组成员发送提醒通知。 前提条件&#xff1a; 完成Zabbix告警平台的搭建后&#xff0c;需将群机器人添加至告警提醒群中。 企业微信群聊——右上角三个点——添加群机器人 保存好产生的webhook地址&#xff08;注意&…

GESP图形化编程一级认证真题 2024年3月

GESP 图形化一级试卷 &#xff08;满分&#xff1a;100 分 考试时间&#xff1a;120 分钟&#xff09; 一、单选题&#xff08;每题 3 分&#xff0c;共 30 分&#xff09; 1、小杨的父母最近刚刚给他买了一块华为手表&#xff0c;他说手表上跑的是鸿蒙&#xff0c;这个 鸿蒙是…

jQuery 基础

文章目录 1. jQuery 概述1.1 JavaScript 库1.2 jQuery 概念1.3 jQuery 优点 2. jQuery 基本使用2.1 下载2.2 使用步骤2.3 jQuery 的入口函数2.4 jQuery 的顶级对象 $2.5 DOM 对象和 jQuery 对象DOM 对象和 jQuery 对象相互转换方法 1. jQuery 概述 1.1 JavaScript 库 1.2 jQue…

【论文阅读】基于多特征融合的智能合约缺陷检测方法

摘要&#xff1a; 1、预处理&#xff1a;颜色标记、词汇提取、字符转换、合约之间的继承关系的提取 2、 使用融合模型进行特征提取&#xff08;BERT、CNN、BiLSTM&#xff09; 3、使用node2vec随机游走算法&#xff0c;将合约之间的继承关系作为输入得到合约关系的特征向量。 4…