使用angular管道实现方式
自定义管道:
highlight.pip.ts
import {Pipe, PipeTransform } from "@angular/core";import {DomSanitizer } from "@angular/platform-browser";@Pipe({name:'highlight'})export class Highlight implements PipeTransform{constructor(private sanitizer: DomSanitizer) {}transform(value: any, key: string) {if(key) {let val = value.replace(new RegExp(key, 'img'), `<span style="color: #CC0000;">${key}</span>`);return this.sanitizer.bypassSecurityTrustHtml(val);}return this.sanitizer.bypassSecurityTrustHtml(value);}}
*注意:需要使用DomSanitizer把值净化为安全内容,否则不生效
app.module.ts
import {Highlight } from './myPow.pipe';@NgModule({declarations: [Highlight,]})
使用:
<div [innerHTML]="title | highlight: searchVal"></div>