import { emojiMap, emojiUrl, remoteUrl } from '@/rongyun/emojMap.js'; export function parseText(message) { const renderDom = []; let temp = message?.payload?.text || ''; let left = -1; let right = -1; while (temp !== '') { left = temp.indexOf('['); right = temp.indexOf(']'); switch (left) { case 0: if (right === -1) { renderDom.push({ name: 'span', text: temp }); temp = ''; } else { const _emoji = temp.slice(0, right + 1); if (emojiMap[_emoji]) { renderDom.push({ name: 'img', src: remoteUrl + emojiMap[_emoji] }); temp = temp.substring(right + 1); } else { renderDom.push({ name: 'span', text: '[' }); temp = temp.slice(1); } } break; case -1: renderDom.push({ name: 'span', text: temp }); temp = ''; break; default: renderDom.push({ name: 'span', text: temp.slice(0, left) }); temp = temp.substring(left); break; } } let str = ''; if (renderDom.length > 0) { renderDom.forEach((item) => { if (item.name == 'span') str += item.text; else if (item.name == 'img') str += `` }) } return str; }