前端禁止鍵盤輸入表情

2022-04-30 20:45:13 字數 900 閱讀 3070

**:

在前端頁面開發過程中,總會碰到不允許輸入框輸入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;

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

3 4 if(regstr.test(org_val))

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

1 2 

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

5 console.log(escape(org_val));

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

禁止物理鍵盤輸入

blockinput函式阻塞鍵盤及滑鼠事件到達應用程式 函式原型 bool winapi blockinput in bool fblockit 引數說明 true表示滑鼠和鍵盤事件將被阻塞 false滑鼠和鍵盤事件不被阻塞。但是只有當該執行緒成功呼叫阻塞後才能解除阻塞。返回值說明 如果函式呼叫成功...

edittext禁止輸入表情

第一步 先在xml布局裡新增乙個自定義的edittext 第二步 實現這個自定義的edittext public class containsemojiedittext extends edittext public containsemojiedittext context context,att...

終止鍵盤輸入

一 檔案 流和鍵盤輸入 1 檔案是一塊儲存資訊的儲存器區域。2 具有強大 靈活等特點的c語言具有許多用於開啟 讀 寫和關閉檔案的庫函式。在乙個級別上,可以使用宿主作業系統的基本檔案工具來處理檔案,這被稱為低階i o。c還以第二種級別處理檔案,稱為標準i o包。這包括建立於處理檔案的i o函式的標準模...