是否可以在NgClass指令中使用正则表达式?

时间:2019-08-30 18:43:21

标签: angular angular-material

这是我的材料表的行部分,如果将​​确切的值放在row.name之后,则可以突出显示指定的行,但是我想做的是突出显示其中包含Rage的每一行之后不再关心任何字符,自然地我尝试应用正则表达式。

我尝试使用ngPattern指令,但找不到任何可行的解决方案

   <mat-row  
       *matRowDef="let row; columns: displayedColumns"
        [ngClass]="{'highlight': selectedRowIndex == row.id, 
                    'move_highlight': row.name === 'Rage.*'}">
   </mat-row>

我期望在将。*放到Rage之后,它会根据正则表达式表达检测到每一行,但是却什么也没做。

1 个答案:

答案 0 :(得分:1)

这只是您编写时的字符串比较,测试row.name字面上是否等于'Rage.*'

您真正想要的是:

/^Rage.*/.test(row.name)

我不确定您是否真的可以像这样将正则表达式放入Angular HTML中,所以我可能要做的就是在您的TypeScript类文件中创建一个函数,如下所示:

  testForRage(s: string) {
    return /^Rage.*/.test(s);
  }

然后放:

'move_highlight': testForRage(row.name)}">

...进入您的HTML。