aboutsummaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/shared/pipes/highlight/highlight-filter.pipe.ts
blob: b25458d6d64b65961a66d4ce15a63cb3bd1e5fe9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
import {PipeTransform, Pipe} from '@angular/core';
import * as _ from 'lodash';

@Pipe({ name: 'highlight' })
export class HighlightPipe implements PipeTransform {
  transform(text: string, search: string): string {
    if(_.isNil(text)) return text;
    let pattern = search.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
    let regex = new RegExp(pattern, 'gi');
    return search ? text.replace(regex, (match) => `<span class="highlight">${match}</span>`) : text;
  }
}