У меня есть регулярное выражение для 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})$/