“小程序”自制emoji删除按钮,删除最后一个字符

这篇博客介绍了如何在小程序中实现删除文本末尾的字符,包括普通文本和emoji。重点在于处理emoji的占位问题以及避免重复emoji被错误删除。解决方案是通过将选中的emoji存入栈,然后从后往前遍历找到最尾部的emoji,使用slice()方法进行删除,以确保只删除最后一个。在实现过程中,特别注意了不能使用replace()方法,因为它会优先删除栈中先出现的emoji。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
本次功能:删除最尾部文本(可删除普通文本、emoji表情,和键盘输入emoji)。

难点:怎么判断emoji,怎么删除最尾部。 (emoji占位符有的占2位,ios有的自带emoji占4位)

碰到问题: 重复emoji会先删除前者。

已解决: 使用slice()删除。

思路:
先把所有选中过的emoji表情入栈,包括键盘输入emoji。
(键盘输入emoji: 要进行判断本次输入的内容,做筛选后入栈。)

删除时:使用lastIndexOf(),和从尾部遍历入栈表情。从后往前找,存在最尾部的emoji。

删除方法: 从slice(0, index) 即截取emoji前面的所有文本,就达到本次功能,删除最尾部emoji);

(!不能使用replace()方法,他会有限从头到尾查找,如果相同emoji会先删除前者,不达到本次功能)

以下上代码:

1:表单键盘输入

Page({
   
	data: {
   
		chtIntValue: '',         // 表单输入的文本内容
		inputEmojis: [],         // 保存选择过的emoji表情
	},

	// 监听表单文本输入的内容
	handleToInputChat: function(e) {
   
		let value = e.detail.value;                // 本次键盘输入后的表单文本
	    let preValue = this.data.chtIntValue;      // 上次的文本内容记录
    	const inputEmojis = this.data.inputEmojis;  // 导出输入过的emoji表情

		let emojis = value;    
		
	    // 把表单中的历史emoji删除
	    for (let i = 0; i < inputEmojis.length
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值