用JS過濾Emoji表情的輸入

2022-07-17 05:06:14 字數 950 閱讀 9976

在前端頁面開發過程中,總會碰到不允許輸入框輸入emoji表情的需求,我的思路是通過編碼用正則匹配表情,然後將其替換為空字元創。但是問題也是顯而易見的,完整的編碼集是什麼呢?查閱了官方文件,發現上面並沒有給出想要的答案。並且很多emoji表情除了主編碼還有副編碼(這是我給取的名字),舉個例子:

\ud83c\udc00是乙個表情,\ud83c\udc00\u200d又是乙個表情,我把\ud83c\udc00稱為主編碼,\u200d稱為副編碼(或者衍生編碼,反正意思理解了就行)。

--------------------------接下來漫長的手動測試編碼集的過程--------------------------

最終解決方案如下:

1

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;

2var org_val = $("input").val();34

if(regstr.test(org_val))

上面的正則可以匹配ios10.2.1及之前的全部emoji表情,android的表情因為比較多,如上面的正則有遺漏,可自行補充。測試乙個表情的編碼方法如下:

123

4var org_val = $("input").val();

5console.log(escape(org_val));6//

escape得到%ud83c%u.........格式的編碼,可對應成\u...格式

本文完。

php過濾表單輸入的emoji表情

1.過濾emoji表情的原因 在我們的專案開發中,emoji表情是個麻煩的東西,即使我們可以能儲存,也不一定能完美顯示,因為它的更新速度很快 在ios以外的平台上,例如pc或者android。如果你需要顯示emoji,就得準備一大堆emoji並使用第三方前端類庫才行。即便如此,還是可能因為emoji...

iOS 過濾emoji表情

前言。bool stringcontainsemoji nsstring string else if substring.length 1 else else if 0x2b05 hs hs 0x2b07 else if 0x2934 hs hs 0x2935 else if 0x3297 hs ...

EditText過濾emoji表情

最近在專案中遇到乙個輸入法自帶emoji表情無法上傳的問題,想到採用禁止輸入emoji的辦法 其實後台資料庫新增emoji表情符是更好的做法,當然有些輸入框確實不需要emoji表情 實現 public class textchangelistener implements textwatcher o...