JS過濾emoji

以前一直沒有遇到這樣的問題,今天遇到了而且百度找了很久都沒找到合適的解決方法,所以記錄下。
使用JS過濾emoji表情的主要原因:input標籤中輸入emoji表情,提交表單後插入數據庫報錯。
原因是因爲UTF-8編碼有可能是兩個、三個、四個字節。Emoji表情是4個字節,而MySql的utf8編碼最多3個字節,所以數據插不進去。
於是找到兩個解決方案:
1.將Mysql的編碼從utf8轉換成utf8mb4
2.前端JS校驗過濾掉emoji表情

下面主要粘下過濾emoji的JS代碼

function filteremoji(){
    var ranges = [
        '\ud83c[\udf00-\udfff]', 
        '\ud83d[\udc00-\ude4f]', 
        '\ud83d[\ude80-\udeff]'
    ];
    var emojireg = $("#emoji_input").val();
    emojireg = emojireg .replace(new RegExp(ranges.join('|'), 'g'), ''));
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章