我有一个管道,突出显示了搜索到的关键字
但是当我清除输入表单时,我的管道会突出显示单词中的每个字母。如何解决?在这种情况下,如果文本为空
代码打字稿
@Pipe({
name: 'highlight'
})
export class HighlightSearch implements PipeTransform {
public transform(value: string, predicate: string): string {
return value.replace(new RegExp(predicate, 'gi'), `<mark>${predicate}</mark>`);
}
}
HTML
<tbody>
<tr *ngFor="let Slide of SlidesFinded;">
<td>{{ Slide.idSlide }}</td>
<td>NULL</td>
<td [innerHTML]="Slide.textSlide | highlight: text"></td>
</tr>
</tbody>
答案 0 :(得分:4)
空正则表达式匹配每个字符串,因此将其突出显示。将此条件添加为在“关键字”为空并且没有问题的情况下不应用突出显示的条件。
public transform(value: string, predicate: string): string {
if(!predicate){
return value;
}
return value.replace(new RegExp(predicate, 'gi'), `<mark>${predicate</mark>`);
}
或类似的东西。