import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'splitmessage' }) export class SplitMessagePipe implements PipeTransform { transform(emotes: any[], message: string): any[] { if (emotes.length == 0) { return []; } let exps = emotes.map( (emote: any) => emote.title.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') ); let regexp = RegExp('(' + exps.join('|') + ')'); let tokens = message.split(regexp); return tokens.map((token: any) => { let e = emotes.filter((emote: any) => emote.title == token); return e.length > 0 ? e[0] : token; }); } }