zoukankan      html  css  js  c++  java
  • qq表情符的替换和页面显示


     在工作中,需要对qq表情符的解析和显示,在下面的代码中,data和data2分别对应中英文的表情符,其中,看到"\\"表示的是转义。

         var url = 'http://res.mail.qq.com/zh_CN/images/mo/DEFAULT2/';
         var data = {
                    "0":"微笑","1":"撇嘴","2":"色","3":"发呆","4":"得意","5":"流泪","6":"害羞","7":"闭嘴","8":"睡","9":"大哭","10":"尴尬"
                    ,"11":"发怒","12":"调皮","13":"呲牙","14":"惊讶","15":"难过","16":"酷","17":"冷汗","18":"抓狂","19":"吐","20":"偷笑"
                    ,"21":"可爱","22":"白眼","23":"傲慢","24":"饥饿","25":"困","26":"惊恐","27":"流汗","28":"憨笑","29":"大兵","30":"奋斗"
                    ,"31":"咒骂","32":"疑问","33":"嘘...","34":"晕","35":"折磨","36":"衰","37":"骷髅","38":"敲打","39":"再见","40":"擦汗"
                    ,"41":"抠鼻","42":"鼓掌","43":"糗大了","44":"坏笑","45":"左哼哼","46":"右哼哼","47":"哈欠","48":"鄙视","49":"委屈","50":"快哭了"
                    ,"51":"阴险","52":"亲亲","53":"吓","54":"可怜","55":"菜刀","56":"西瓜","57":"啤酒","58":"篮球","59":"乒乓","60":"咖啡"
                    ,"61":"饭","62":"猪头","63":"玫瑰","64":"凋谢","65":"示爱","66":"爱心","67":"心碎","68":"蛋糕","69":"闪电","70":"炸弹"
                    ,"71":"刀","72":"足球","73":"瓢虫","74":"便便","75":"月亮","76":"太阳","77":"礼物","78":"拥抱","79":"强","80":"弱"
                    ,"81":"握手","82":"胜利","83":"抱拳","84":"勾引","85":"拳头","86":"差劲","87":"爱你","88":"NO","89":"OK","90":"爱情"
                    ,"91":"飞吻","92":"跳跳","93":"发抖","94":"怄火","95":"转圈","96":"磕头","97":"回头","98":"跳绳","99":"挥手","100":"激动"
                    ,"101":"街舞","102":"献吻","103":"左太极","104":"右太极"
            };
         var data2 = {
            "0":"::\\)","1":"::~","2":"::B","3":"::\\|","4":":8\\-\\)","5":"::\\<","6":"::\\$","7":"::X","8":"::Z","9":"::'\\(","10":"::\\-\\|"
            ,"11":"::@","12":"::P","13":"::D","14":"::O","15":"::\\(","16":"::\\+","17":":\\-\\-b","18":"::Q","19":"::T","20":":,@P"
            ,"21":":,@\\-D","22":"::d","23":":,@o","24":"::g","25":":\\|\\-\\)","26":"::!","27":"::L","28":"::\\>","29":"::,@","30":":,@f"
            ,"31":"::\\-S","32":":\\?","33":":,@x","34":":,@@","35":"::8","36":":,@!","37":":!!!","38":":xx","39":":bye","40":":wipe"
            ,"41":":dig","42":":handclap","43":":&\\-\\(","44":":B\\-\\)","45":":<@","46":":@>","47":"::-O","48":":\\>\\-\\|","49":":P\\-\\(","50":"::'\\|"
            ,"51":":X\\-\\)","52":"::\\*","53":":@x","54":":8\\*","55":":pd","56":":<W>","57":":beer","58":":basketb","59":":oo","60":":coffee"
            ,"61":":eat","62":":pig","63":":rose","64":":fade","65":":showlove","66":":heart","67":":break","68":":cake","69":":li","70":":bome"
            ,"71":":kn","72":":footb","73":":ladybug","74":":shit","75":":moon","76":":sun","77":":gift","78":":hug","79":":strong","80":":weak"
            ,"81":":share","82":":v","83":":@\\)","84":":jj","85":":@@","86":":bad","87":":lvu","88":":no","89":":ok","90":":love"
            ,"91":":<L>","92":":jump","93":":shake","94":":<O>","95":":circle","96":":kotow","97":":turn","98":":skip","99":":oY","100":":#\\-0"
            ,"101":":hiphot","102":":kiss","103":":\\<&","104":":&\\>"
      };
         var ext = '.gif';    
      

       对表情符替换的代码如下:

       function ReplaceEmoji(str){

             var key, reg;
             for(key in data){
                //reg = '/' + data[key];
                reg = new RegExp('/' + data[key], 'g');
                str = str.replace(
                    reg, 
                    '<img src="' + url + key + ext + '" alt="mo-' + data[key] + '"/>'
                );
                //reg = '/' + data2[key];
                reg = new RegExp('/' + data2[key], 'g');
                str = str.replace(
                    reg, 
                    '<img src="' + url + key + ext + '" alt="mo-' + data[key] + '"/>'
                );

            }     
            return str;      
        }

     那么,对于str ="/::T/:,@-D/:|-)/:,@-D/::T/:,@P/::-|/::</::|/::B/::@/:wipe/:,@x/::+/:?/::8/:!!!/:,@!/:handclap/:&-(";的字符串,

    直接可以用 str = ReplaceEmoji(str); 进行替换了

  • 相关阅读:
    Balance的数学思想构造辅助函数
    1663. Smallest String With A Given Numeric Value (M)
    1680. Concatenation of Consecutive Binary Numbers (M)
    1631. Path With Minimum Effort (M)
    1437. Check If All 1's Are at Least Length K Places Away (E)
    1329. Sort the Matrix Diagonally (M)
    1657. Determine if Two Strings Are Close (M)
    1673. Find the Most Competitive Subsequence (M)
    1641. Count Sorted Vowel Strings (M)
    1679. Max Number of K-Sum Pairs (M)
  • 原文地址:https://www.cnblogs.com/dingjing/p/2695242.html
Copyright © 2011-2022 走看看