EditText過濾emoji表情

2021-09-17 22:50:20 字數 1221 閱讀 8193

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

**實現:

public class textchangelistener implements textwatcher 

@override

public void beforetextchanged(charsequence charsequence, int i, int i1, int i2)

@override

public void ontextchanged(charsequence s, int start, int before, int count) }}

@override

public void aftertextchanged(editable s)

}/**

* 正則判斷emoji表情

* @param input

* @return

*/private boolean isemoji(string input)

}

**的意思就是當輸入文字內容變化的時候判斷是否有emoji表情輸入,若有,則刪除,主要難度在於emoji表情的過濾,使用的是正規表示式,由於emoji隨時都會增加,所以這種過濾方式不是很徹底,再解釋下ontextchanged方法裡面的引數:charsequence是已經改變過的文字內容;start表示操作的位置,也就是游標位置;before代表被替換的就文字長度,其實新增文字的時候這個長度都為0,刪除的時候為刪除的字元長度;count是替換的文字長度,新增文字的時候長度為新增字元的長度,刪除文字時為0。通過這些引數就可以擷取到輸入的字元,從而用正規表示式判斷,如果是就直接刪除。而正規表示式的資料是從下面的emoji編碼表檢視的,裡面都是最新的表情。

然後新增輸入框***:

meditcontent = (edittext) findviewbyid(r.id.et_content);

meditcontent.addtextchangedlistener(new textchangelistener(getcontext()));

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 ...

python 過濾特殊字元 emoji

前提背景 通過介面獲取到的資料,要存入資料庫,由於資料庫的編碼問題,一些特殊字元出現錯誤,無法進入資料庫 解決辦法 過濾掉這些特殊字元,包含emoji表情等各種特殊字元 impoer re def filter str desstr,restr 過濾除中英文及數字以外的其他字元 res re.com...

過濾NSString中的Emoji

有時候由於專案需求。要過濾nsstring中的emoji。比方下面情況 思路例如以下,遍歷nsstring每個字元,然後替換成其他字元。列印每個字元 nsrange range for nsinteger i 0 i length i range.length 怎樣推斷composedstring是...