emoji.js 實現 web 中顯示 emoji

更新于 2017-11-17

使用場景:

客戶端的評論信息础钠,包含 emoji 數據钙皮,獲取并顯示在 web 頁面中

使用到的插件:
js-emoji - Display emoji in the browser, everywhere

所需資源:

  1. emoji.css
  2. emoji.min.js
  3. img-apple-64 系列 emoji 圖片(不固定缠借,自己選擇眶熬,資源地址在此

代碼示例:

<link href="emoji.css" rel="stylesheet" type="text/css" />
<script src="emoji.min.js" type="text/javascript"></script>
<script type="text/javascript">

// 初始化
var emoji = new EmojiConvertor();

// 設置指向 emoji 圖片的地址 (requires trailing slash)
// you can grab the images from the emoji-data link here:
// https://github.com/iamcal/js-emoji/tree/master/build
emoji.img_sets.apple.path = '/plugins/js-emoji/emoji-data/img-apple-64/';

/**
 * If the platform supports native emoticons, use those instead
 * of the fallbacks.
 * 如果平臺支持原生表情解析信不,使用原生表情而不是回退的圖片形式
 * 默認:emoji.allow_native = true;
*/
// false 設置默認都使用圖片形式屈溉,如果 true 的話,在 ios 系統(tǒng)下會默認使用原生的表情
// 在頁面置于 app 客戶端 webview 中時姐扮,部分 ios 機型無法正確識別原生表情
emoji.allow_native = false;

 /**
  * [emojiTransfer 轉換評論中的表情]
  * @author Alexee
  * @date   2017-07-17
  * @param  {[string]}   data     [html字符串數據]
  * @return {[string]}   newData  [處理過的html字符串數據]
  */
function emojiTransfer(data) {
    // 篩選出 emoji unicode 的正則絮供,具體看你們的后端人員如何存儲的 emoji 數據
    // ...[emoji:d83dde02]... => s:[emoji:d83dde02] match:d83dde02
    var newData = data.replace(/\[emoji:([^\s\[]+?)\]/g, function(s, match) {
    
        // d83dde02 => us:d83d umatch:d83d; us:de02 umatch:de02
        var uData = match.replace(/(\S{4})/g, function(us, umatch) {
            return '\\u' + umatch;
        });
        
        // unicode 轉中文,可以在 web 中顯示 web 版 emoji
        var zh = eval("'" + uData + "'");
        
        // 是否只在 pc 端進行 emoji 的轉換
        // 移動端對于 emoji 的顯示會有差異性(ios android emoji 識別不同)
        // if (!browser.versions.ios && !browser.versions.android) {
        
        // replaces \u{1F604} with platform appropriate content
        var output = emoji.replace_unified(zh);
        return output;
        
        // } else {
        //    return zh;
        // }
    });
    return newData;
}

// 方法調用
// 處理某段 html 內容
var $content = $('.content .info');
$content.html(emojiTransfer($content.html()));

</script>

效果如圖:

未處理前的 html
處理后的 html
頁面的顯示效果
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末茶敏,一起剝皮案震驚了整個濱河市壤靶,隨后出現的幾起案子,更是在濱河造成了極大的恐慌惊搏,老刑警劉巖贮乳,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異恬惯,居然都是意外死亡向拆,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門酪耳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浓恳,“玉大人,你說我怎么就攤上這事葡兑〗甭” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵讹堤,是天一觀的道長吆鹤。 經常有香客問我,道長洲守,這世上最難降的妖魔是什么疑务? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮梗醇,結果婚禮上知允,老公的妹妹穿的比我還像新娘。我一直安慰自己叙谨,他們只是感情好温鸽,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著手负,像睡著了一般涤垫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上竟终,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天蝠猬,我揣著相機與錄音,去河邊找鬼统捶。 笑死榆芦,一個胖子當著我的面吹牛柄粹,可吹牛的內容都是我干的。 我是一名探鬼主播匆绣,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼驻右,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了犬绒?” 一聲冷哼從身側響起旺入,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凯力,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體礼华,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡咐鹤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了圣絮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祈惶。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扮匠,靈堂內的尸體忽然破棺而出捧请,到底是詐尸還是另有隱情,我是刑警寧澤棒搜,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布疹蛉,位于F島的核電站,受9級特大地震影響力麸,放射性物質發(fā)生泄漏可款。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一克蚂、第九天 我趴在偏房一處隱蔽的房頂上張望闺鲸。 院中可真熱鬧,春花似錦埃叭、人聲如沸摸恍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽立镶。三九已至,卻和暖如春益缎,著一層夾襖步出監(jiān)牢的瞬間谜慌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工莺奔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留欣范,地道東北人变泄。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像恼琼,于是被迫代替她去往敵國和親妨蛹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容

  • AMD 和 CMD 的區(qū)別有哪些晴竞?AMD 是 RequireJS 在推廣過程中對模塊定義的規(guī)范化產出蛙卤。CMD 是 ...
    竿牘閱讀 698評論 0 1
  • 一:在制作一個Web應用或Web站點的過程中,你是如何考慮他的UI噩死、安全性颤难、高性能、SEO已维、可維護性以及技術因素的...
    Arno_z閱讀 1,156評論 0 1
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案行嗤? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,748評論 1 92
  • 二期總結 每天都是汗水與知識的交織,總結著學習過去的一些經驗垛耳,對于一周的工作計劃淺談一下工作的幾個方面栅屏。 工作的重...
    別碰我我有焚寂煞氣閱讀 352評論 0 1
  • 一栈雳、原文 舜發(fā)于畎畝之中,傅說舉于版筑之間缔莲,膠鬲舉于魚鹽之中哥纫,管夷吾舉于士,孫叔敖舉于海酌予,百里奚舉于市磺箕。 故天將降...
    金石明鏡閱讀 1,333評論 0 4