Web개발/Javascript

이모티콘 오라클,Mysql 저장에러 정규식 체크

테니스치는개발자 2019. 6. 6. 22:00

결함 : 모바일 웹에서 이모티콘 저장하니까 QA 에서 결함 올려서 처리

원인 : 이모티콘(emoji) 는 4byte 에 해당하는 유니코드로 오라클 charset UTF-8 (3byte) 에는 없어서 ??? 로 저장됨.

 

1)이모티콘 정규식 체크해서 저장 못하게.

2) mysql charset 변경 : utf8mb4 로 변경 (확인해보지 못함)

3) 오라클. 나중에 해보자

<!--이모티콘 체크로직 -->

<input id="emojiText" value="" onchange="">

<script type="text/javascript">

        var hw = document.getElementById('emojiText');

        hw.addEventListener('change', function(){

            console.log(hw.value);

            var reg = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/g; 

        var testing = reg.test( hw.value );

            if( testing ){

            alert("이모티콘은 입력하지 마세요.");

            hw.value = hw.value.replace(reg, '');

            return false;

            }

        })

<!--이모티콘 체크로직 -->