如何为任何正则表达式创建过滤器

时间:2019-05-17 10:45:13

标签: html angular filter

我正在从事Angular 7项目。我有在config.json文件中配置的正则表达式。

我希望通用过滤器解决方案将数据与正则表达式匹配,并显示数据出价与正则表达式一样。

示例: 如果正则表达式为:[0-9],\ d,\ d,-,[0-9],\ d,\ d,\ d,\ d,\ d,-,[0-9],\ d ,\ d
数据:123456789321
输出应为:123-456789-321

如果正则表达式为:[0-9],\ d,\ d,-,[0-9],\ d,\ d
数据:123456
输出应为:123-456

1 个答案:

答案 0 :(得分:0)

编辑: 定期尝试https://www.npmjs.com/package/ngx-mask

  data = '123456789321';
  constructor() {

  }
  ngOnInit() {
    this.getStr('[0-9],\d,\d,-,[0-9],\d,\d,');
    this.getStr('[0-9],\d,\d,-,[0-9],\d,\d,\d,\d,\d,-,[0-9],\d,\d,');
  }

  getStr(regStr) {
    const parts = regStr.split('-,');
    let prevLen = 0;
    let str = '';
    parts.forEach((part, index) => {
      let len = part.split(',').length - 1;
      str = index === 0 ? `${this.data.substr(prevLen, len)}` : `${str}-${this.data.substr(prevLen, len)}`
      prevLen = prevLen + len;
    })
    console.log(str);
  }