Как создать фильтр для любого регулярного выражения - PullRequest
0 голосов
/ 17 мая 2019

Я работаю над проектом 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 голосов
/ 17 мая 2019

Редактировать: попробуйте 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);
  }
...