paseEmoji.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. const Emoji = {
  2. path: '../static/images/faces/',
  3. map: {
  4. '[):]': 'ee_1.png',
  5. '[:D]': 'ee_2.png',
  6. '[;)]': 'ee_3.png',
  7. '[:-o]': 'ee_4.png',
  8. '[:p]': 'ee_5.png',
  9. '[(H)]': 'ee_6.png',
  10. '[:@]': 'ee_7.png',
  11. '[:s]': 'ee_8.png',
  12. '[:$]': 'ee_9.png',
  13. '[:(]': 'ee_10.png',
  14. "[:'(]": 'ee_11.png',
  15. '[<o)]': 'ee_12.png',
  16. '[(a)]': 'ee_13.png',
  17. '[8o|]': 'ee_14.png',
  18. '[8-|]': 'ee_15.png',
  19. '[+o(]': 'ee_16.png',
  20. '[|-)]': 'ee_17.png',
  21. '[:|]': 'ee_18.png',
  22. '[*-)]': 'ee_19.png',
  23. '[:-#]': 'ee_20.png',
  24. '[^o)]': 'ee_21.png',
  25. '[:-*]': 'ee_22.png',
  26. '[8-)]': 'ee_23.png',
  27. '[del]': 'btn_del.png',
  28. '[(|)]': 'ee_24.png',
  29. '[(u)]': 'ee_25.png',
  30. '[(S)]': 'ee_26.png',
  31. '[(*)]': 'ee_27.png',
  32. '[(#)]': 'ee_28.png',
  33. '[(R)]': 'ee_29.png',
  34. '[({)]': 'ee_30.png',
  35. '[(})]': 'ee_31.png',
  36. '[(k)]': 'ee_32.png',
  37. '[(F)]': 'ee_33.png',
  38. '[(W)]': 'ee_34.png',
  39. '[(D)]': 'ee_35.png',
  40. },
  41. };
  42. const parseEmoji = (msg) => {
  43. if (typeof Emoji === 'undefined' || typeof Emoji.map === 'undefined') {
  44. return msg;
  45. }
  46. var emoji = Emoji,
  47. reg = null;
  48. var msgList = [];
  49. var objList = [];
  50. for (var face in emoji.map) {
  51. if (emoji.map.hasOwnProperty(face)) {
  52. while (msg.indexOf(face) > -1) {
  53. msg = msg.replace(face, '^' + emoji.map[face] + '^');
  54. }
  55. }
  56. }
  57. var ary = msg.split('^');
  58. var reg = /^e.*g$/;
  59. for (var i = 0; i < ary.length; i++) {
  60. if (ary[i] != '') {
  61. msgList.push(ary[i]);
  62. }
  63. }
  64. for (var i = 0; i < msgList.length; i++) {
  65. if (reg.test(msgList[i])) {
  66. var obj = {};
  67. obj.data = msgList[i];
  68. obj.type = 'emoji';
  69. objList.push(obj);
  70. } else {
  71. var obj = {};
  72. obj.data = msgList[i];
  73. obj.type = 'txt';
  74. objList.push(obj);
  75. }
  76. }
  77. return objList;
  78. };
  79. export default parseEmoji;