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); 进行替换了

  • 相关阅读:
    SenCha Touch AJAX跨域
    MS SQL 索引分析
    Tomcat性能优化(二) 启动参数设置
    PLSQL 连接不上64位ORACLE数据库解决办法
    PLSQL 配置连接ORACLE数据库
    Mybatis Batch 批量操作
    [No000014]听说不背单词,考英语会是这种下场-我们为什么必须背单词?
    [No000000]常用软件测试编译环境声明
    [No000013]在Office中关闭自动拼写检查和自动语法检查
    [No000012]编程中浮点数之什么是科学计数法
  • 原文地址:https://www.cnblogs.com/dingjing/p/2695242.html
Copyright © 2011-2022 走看看