emotion.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import UNI_APP from '@/.env.js'
  2. const emoTextList = ['憨笑', '媚眼', '开心', '坏笑', '可怜', '爱心', '笑哭', '拍手', '惊喜', '打气',
  3. '大哭', '流泪', '饥饿', '难受', '健身', '示爱', '色色', '眨眼', '暴怒', '惊恐',
  4. '思考', '头晕', '大吐', '酷笑', '翻滚', '享受', '鼻涕', '快乐', '雀跃', '微笑',
  5. '贪婪', '红心', '粉心', '星星', '大火', '眼睛', '音符', "叹号", "问号", "绿叶",
  6. "燃烧", "喇叭", "警告", "信封", "房子", "礼物", "点赞", "举手", "拍手", "点头",
  7. "摇头", "偷瞄", "庆祝", "疾跑", "打滚", "惊吓", "起跳"
  8. ];
  9. const regex = /\#[\u4E00-\u9FA5]{1,3}\;/gi;
  10. let containEmoji = (content) => {
  11. return regex.test(content)
  12. }
  13. let transform = (content, extClass) => {
  14. return content.replace(regex, (emoText)=>{
  15. // 将匹配结果替换表情图片
  16. let word = emoText.replace(/\#|\;/gi, '');
  17. let idx = emoTextList.indexOf(word);
  18. if (idx == -1) {
  19. return emoText;
  20. }
  21. let path = textToPath(emoText);
  22. let img = `<img src="${path}" class="${extClass}"/>`;
  23. return img;
  24. });
  25. }
  26. let textToPath = (emoText) => {
  27. let word = emoText.replace(/\#|\;/gi, '');
  28. let idx = emoTextList.indexOf(word);
  29. return UNI_APP.EMO_URL + idx + ".gif";
  30. }
  31. export default {
  32. containEmoji,
  33. emoTextList,
  34. transform,
  35. textToPath
  36. }