Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Strip out or remove Emojis from comments

Steve6
Tera Expert

Hello,

I have a need to strip or remove all Emojis from work notes/comments prior to bridging them to another tool.  Does anyone have a solution to replace or remove Emojis?

Any help is appreciated.

Steve.

1 ACCEPTED SOLUTION

Kunal Varkhede
Tera Guru

Hi,

 

 

Check @Carl Fransen comment in below link it will help you

https://community.servicenow.com/community?id=community_question&sys_id=5d70c3e1db98dbc01dcaf3231f96...

Business Rule - name 'Replace Unicode Chars when received'. 

Before rule in Insert only

Select Advanced

Filter:  'Type = received'

Script is below:

(function executeRule(current, previous /*null when async*/) { 
 
// emoticons truncate emails, so remove them prior to insert 
gs.log ("Cleaning up Email Test:"); 
 
current.body_text = current.body_text.toString().replace(/^[\0\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, ' - '); 
current.body = current.body_text.toString().replace(/^[\0\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, ' - '); 
	
})(current, previous);

 

Thanks,

Kunal

View solution in original post

4 REPLIES 4

Pranav Bhagat
Kilo Sage
.replace(/([\uE000-\uF8FF]|\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF])/g, '')

Use this regular expression

 

 Mark Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Pranav

Pranav Bhagat
Kilo Sage

A more simplified function 

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, '');
}

 

 Mark Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Pranav

Kunal Varkhede
Tera Guru

Hi,

 

 

Check @Carl Fransen comment in below link it will help you

https://community.servicenow.com/community?id=community_question&sys_id=5d70c3e1db98dbc01dcaf3231f96...

Business Rule - name 'Replace Unicode Chars when received'. 

Before rule in Insert only

Select Advanced

Filter:  'Type = received'

Script is below:

(function executeRule(current, previous /*null when async*/) { 
 
// emoticons truncate emails, so remove them prior to insert 
gs.log ("Cleaning up Email Test:"); 
 
current.body_text = current.body_text.toString().replace(/^[\0\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, ' - '); 
current.body = current.body_text.toString().replace(/^[\0\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, ' - '); 
	
})(current, previous);

 

Thanks,

Kunal

Thank you very much for this information.  This is just what I needed!