Regex
Чтобы проверить, не является ли первый символ строки не пустым, вы можете использовать выражение ^\S.*$
. Объяснение объяснения здесь .
Машинопись
Чтобы оценить строку с регулярным выражением, вы можете использовать test()
метод. Он возвращает логическое значение на основе переданного ему аргумента.
Теперь, когда у нас есть выражение регулярного выражения и способ проверить его в Typescript, вам нужно только получить ввод текста в textarea
, проверить его против выражения регулярного выражения и привяжите к нему свойство кнопки [disabled]
.
Компонент
export class NgbdModalContent {
@Input() name;
textAreaValue: any;
enableSubmit = false;
constructor(public activeModal: NgbActiveModal) {}
onKeyUp(event: any) {
this.enableSubmit = /^\S.*$/.test(this.textAreaValue);
}
}
Шаблон
<div class="modal-header">
<h4 class="modal-title">Hi there!</h4>
<button type="button" class="close" aria-label="Close" (click)="activeModal.dismiss('Cross click')">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<textarea style="background-color:white;color:black;" [(ngModel)]='textAreaValue' (keyup)="onKeyUp($event)">
</textarea>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-dark" [disabled]="!enableSubmit" (click)="activeModal.close('Close click')">Submit</button>
</div>
Рабочий пример: Stackblitz