本次功能:删除最尾部文本(可删除普通文本、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