Sidebar

How can I remove emoji's from the content of a message?

0 votes
3.0K views
asked Aug 16, 2018 by david-f-5427 (1,600 points)
A patient portal app allows emoji's to be sent in messages to providers. The backend system cannot accept these. How can I remove emoji's using QIE before sending the message on?

1 Answer

+2 votes
 
Best answer

This list of unicode characters for emoji's grows all the time. This being said, the following regex may need to be updated in time to include new additions to the emoji world.

In a mapping function, you can strip out emoji's from text with the following:

//NOTE: the message's text field must be concatenated with an empty JavaScript string literal!
var textContainingEmojis = "" +  message.getNode(node_path_to_text_with_emojis);

textContainingEmojis = textContainingEmojis.replace(/(?:[\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, '');

message.setNode(node_path_to_text_with_emojis, textContainingEmojis);

 

The magic in the above code snippet are the unicode codepoints (i.e. \u2700, etc). These represent a list of known emoji's at this point in time (NOTE: this list may not be comprehensive now or in the future). These codepoints are wrapped in regular expression-specific syntax to be used by the JavaScript string.replace method. Here's a screenshot of a QIE channel in debug mode showing successful emoji removal:

 

 

answered Aug 16, 2018 by david-f-5427 (1,600 points)
selected Nov 17, 2020 by michael-h-5027
...