Как и в следующем StackBlitz
У меня есть элемент управления формы с проверкой шаблона
formController = new FormControl(null, [Validators.required, Validators.pattern('^, &, *, (, ), +, -, {, }, [, ], <, >,')]);
В HTML у меня есть
<div [innerHTML]="'Write : ^, &, *, (, ), +, -, {, }, [, ], <, >,'"></div>
<form>
<input matInput type="text" [formControl]="formController" autocomplete="off" placeholder="^, &, *, (, ), +, -, {, }, [, ], <, >,">
<div *ngIf="formController.hasError('required')">
POPUP.DELETE_CONFIRMATION_UNMATCHED_REQUIRED
</div>
<div *ngIf="formController.hasError('pattern')">
POPUP.DELETE_CONFIRMATION_UNMATCHED_PATTERN
</div>
</form>
Проблема в том, что шаблон никогда не совпадает.
В примере шаблон в статическом, но в моем приложении шаблон - это имя поля, и он может содержать любые символы.
FormControl не работает только тогда, когда шаблон включает в себя специальный символ, он работает нормально для любого другого имени.
Как это исправить?
РЕДАКТИРОВАТЬ: Дело в том, что это для подтверждения удаления, как в github repo.
Когда вы удаляете вещь, вы должны точно ввести имя репо.
В приложении имя может включать специальный символ, поэтому, если имя репо - ^, &, *, (, ), +, -, {, }, [, ], <, >,'
, мне нужно ввести шестнадцатеричный ^, &, *, (, ), +, -, {, }, [, ], <, >,'
и больше ничего, если имя будет myProject1
, только myProject1
будет работать