Как использовать маску в Angular и шаблон регулярных выражений - PullRequest
0 голосов
/ 20 марта 2020

У меня есть регулярное выражение для OrcidId, номенклатура - XXXX-XXXX-XXXX-XXXX с номерами от 0 до 9, разделенных четырьмя числами через «-».

, и это код что я сделал:

в тс:

 this.formIdentifier = this.builder.group({
      orcId: [ null, [ Validators.required, Validators.maxLength(this.maxLengthCharacters),Validators.pattern(constants.regex_orcid)]]
})

в html:

 <div class="input-container input-calendar inputleft">
            <label>{{'ui.label.orcid' | translate}}</label>
            <input mask="9999-9999-9999-9999" [(ngModel)]="orcId" placeholder="9999-9999-9999-9999" formControlName="orcId"/>
            <span *ngIf="!formIdentifier.controls['orcId'].valid && formIdentifier.controls['orcId'].dirty" class="error-message font-size-14">{{ 'ui.error.required' | translate }}</span>              
            <span *ngIf="!formIdentifier.controls['orcId'].pattern" >error</span>
          </div>

в constants.ts:

 regex_orcid:/^([0-9]{4})?(-)?([0-9]{4})?(-)?([0-9]{4})?(-)?([0-9]{4})?/

проблема в том, что это не проверяет меня, и я не знаю, что я делаю неправильно, возможно, неправильное регулярное выражение.

с другой стороны, есть ли способ напрямую проверить маску без использования регулярного выражения? спасибо всем.

исправление в выражениях Regulars:

/^([0-9]{4})?(-)?([0-9]{4})?(-)?([0-9]{4})?(-)?([0-9]{4})$/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...