因為emoji表情是Unicode編碼, 在某些流浪器上會顯示亂碼, 有的數據庫字節不夠也無法存儲, 網上有很多解決此類問題的辦法, 最簡單的莫過於將emoji表情替換成文本, 比如 [表情][表情]哈哈
我看見的又好幾種寫法
var regStr = /\ud83c[\udf00-\udfff]|\ud83d[\udc00-\ude4f]|\ud83d[\ude80-\udeff]/ig; var testStr = '哈哈😆你好🙃'; var result = testStr.replace(regStr, '[表情]'); console.log(result); // 哈哈[表情]你好[表情]
還有一種比較麻煩的寫法
var regStr = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig; var testStr = '哈哈😆你好🙄'; var result = testStr.replace(regStr, '[表情]'); console.log(result); // 哈哈[表情]你好[表情]