簡體   English   中英

使用正則表達式替換 Angular 模板中字符串中的字符

[英]Using a regex to replace characters in a string in an Angular template

我知道我通常可以使用myString.replace(/\*/g, '')從字符串中刪除* 但我似乎無法在 Angular HTML 模板中完成這項工作。 這就是我在做什么...

<div class="panel panel--raised">
  <div class="row">
    <div class="form-group col-md-6">
      <div class="form-group__text">
        <input type="text" placeholder="Search... (min of 3 characters)" [(ngModel)]="searchString" minlength="3">
      </div>
    </div>
    <div class="col-md-6">
      <button class="btn btn--success btn--small host-info-button"
              [disabled]="searchString.replace(/\*/g, '').length < 3"
              (click)="getInfo(searchString)">Search</button>
    </div>
  </div>
</div>

Parser Error: Unexpected token /...

我在這里做錯了什么?

更新:

我想要做的是讓用戶輸入至少 3 個不是通配符 ( * ) 字符的字符。 所以a**只會算作 1 個字符, ***會算作 0 個字符,但*xyz*會算作 3 個字符。 我不確定Validator.pattern()是否能夠做到這一點,但也許我只是缺乏想象力。

不幸的是,模板語言不支持 RegExp 文字。 它們應該在您的組件上。

有關 Angular Github 回購問題的更多信息: https://github.com/angular/angular/issues/21978

對於這種特殊情況,您可以設置模式驗證器並使用如下內容: Validators.pattern('/\*/g')

在模板中:

[disabled]="isDisabled"

在 ts 文件中:

get isDisabled(): boolean {
    return this.searchString.replace(/\*/g, '').length < 3;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM