본문 바로가기
Web/JavaScript

jquery 텍스트에 있는 이모지 제거

by reumiii 2021. 10. 22.

DB가 이모지는 저장안되는 설정이라 이모지가 들어가면 오류가 발생하는 관계로

DB에 저장 전에 이모지를 제거하려고 한다.

 

 

1. 첫 번째 방법 : Java 단에서 처리했다.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import 하고

String context = "-- 😎이모지 제거할 문자열😋 --";

Pattern emoticons = Pattern.compile("[\\uD83C-\\uDBFF\\uDC00-\\uDFFF]+");
Matcher eMatcher;

eMatcher = emoticons.matcher(context);
context = eMatcher.replaceAll("");

System.out.println(context);// ' 이모지 제거할 문자열 ' 출력됨

다음 방법으로 텍스트의 이모지를 제거했는데,

 

문제는 하이픈(-)까지 제거된다는 점이었다!

 

 

 

2. 두 번째 방법 : 그래서 javaScript 단에서 처리하는 방법으로 바꾸었다.

var context = "-- 😎이모지 제거할 문자열😋 --";

console.log("이모지 제거 : " + removeEmojis(context));

function removeEmojis (string) {// 이모지 삭제
	var regex = /(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/g;
	return string.replace(regex, ''); 
}

 

 

실행하면 하이픈이 지워지지 않고 이모지만 제거되어 출력된다!

 

 

 

참고한 블로그 👇

https://string.tistory.com/39

 

[Java] Emoji 문자 제거

현재 웹에서 제공하는 이모지 [ win + . ] 또는 모바일 단말기에서 제공하는 특수문자들이 유니코드이지만 DB에 저장 시 지원하지 않는 경우 에러를 유발하게 됩니다. 😊 정확하게는 uft8mb4를 지원

string.tistory.com

 

이모지 문자를 제거해주는 3가지 방법을 잘 알려주고 있다!

댓글