首页 > 解决方案 > Angular 5过滤管

问题描述

我对过滤管角度 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);
    });
  }
}

这是我的日期格式:01.01.1992。如何忽略点 (.) 并仅搜索键入的数字。我的代码有效,但我在搜索某些内容时需要输入点。

标签: angularangularjs-directiveangular5angular-filtersangular-pipe

解决方案


您可以使用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);
    });
  }
}

推荐阅读