角5过滤管

时间:2018-11-11 11:04:53

标签: angular angularjs-directive angular5 angular-filters angular-pipe

我对过滤管角度5有疑问。 过滤器管道工作正常,但我有任务来过滤日期格式。

import { Pipe, PipeTransform } from "@angular/core";

@Pipe({
  name: "filter"
})
export class FilterPipe implements PipeTransform {
  transform(items: any[], searchText: string): any[] {
    if (!items) return [];
    if (!searchText) return items;
    searchText = searchText.toLowerCase();

    return items.filter(it => {
      return it.data.DatumRodjenja.toLowerCase().includes(searchText);
    });
  }
}

这是我的日期格式:1992年1月1日。如何忽略点(。)并仅搜索键入数字。我的代码可以工作,但是当我搜索某些东西时我需要输入点。

2 个答案:

答案 0 :(得分:1)

您可以使用replace/\./g的正则表达式,它们会填充找到所有点并将其替换为''

import { Pipe, PipeTransform } from "@angular/core";

@Pipe({
  name: "filter"
})
export class FilterPipe implements PipeTransform {
  transform(items: any[], searchText: string): any[] {
    if (!items) return [];
    if (!searchText) return items;
    searchText = searchText.toLowerCase();

    return items.filter(it => {
      return it.data.DatumRodjenja.toLowerCase().replace(/\./g,' ').includes(searchText);
    });
  }
}

答案 1 :(得分:0)

或者,您也可以这样:

return it.data.DatumRodjenja.toLowerCase().split('.').join('').includes(searchText);