HTML CSS JS

JavaScript) 이모지 필터링 정규식

code_learner 2023. 4. 11. 01:29

1.블랙리스트 

    /*메시지 필터링*/
    emojiCheck: function(smsMsg, msgId){
    	1.블랙리스트
        const blackFilter = 
        	/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]
            |\uD83D[\uDC00-\uDFFF]|[\u2011-\u2017]|[\u2028-\u203A]|[\u203C-\u218f]
            |[\u219a-\u259F]|[\u25A4-\u25B5]|[\u2601-\u2604]|[\u2607-\u260D]
            |[\u2610-\u261B]|[\u261F-\u265f]|[\u2670-\u26FF]|\uD83E[\uDD10-\uDDFF]
            |[\u1F90E])/g;


        var filteredMsg = smsMsg.replace(blackFilter,'');
        var cursorStart = msgId.inputEl.dom.selectionStart;


         if(filteredMsg != smsMsg) {
            var cursorMargin = smsMsg.length - filteredMsg.length;
           
           	...
            //2.이모지등 포함시 알림, 이모지 삭제등등 로직
            ...
                
            //3.커서 위치 지정
            msgId.inputEl.dom.selectionStart = cursorStart-cursorMargin;
            msgId.inputEl.dom.selectionEnd = cursorStart-cursorMargin;  
            return false;
         }
         return true;
    },

 

2.화이트리스트

var whiteList = 
	/(?![가-힣ㅏ-ㅣㄱ-ㅎa-zA-Z0-9]+)
    	[^\p{M}\p{Z}\p{Cf}\p{Cs}~`!@#$%^&*()\-_=+[{\]}\\|;:'",<.>/?\n]/gu;

 

3. P{Extended_Pictographic}

const noEmojis = /\P{Extended_Pictographic}/u