Я разрабатываю приложение, используя угловой дротик. Я использую ввод материала углового дротика для получения ввода от пользователя.
У меня есть многострочный ввод текста, для которого я использую ввод материала и тип = "текст".
Я сделал это поле «обязательным», но проблема в том, что когда пользователь вводит пробел или ввод, «обязательный» исчезает. Мне нужен атрибут, в котором я могу указать ограничение, согласно которому должен быть введен хотя бы один символ, отличный от пробела.
Как этого добиться?
Вот мой код, в котором я использовал материальный ввод:
<material-input
ngControl = "textAnswer" [(ngModel)] = "answer" multiline
type = "text" label = "Your answer" required>
</material-input>





В соответствии с документация вы можете использовать с ним все атрибуты элементов input.
All of the attributes that can be used with normal
<input>and<textarea>elements can be used on elements inside<mat-form-field>as well
Поэтому используйте Атрибут HTML5 pattern для соответствия пользовательскому шаблону (регулярному выражению).
<material-input
ngControl = "textAnswer" [(ngModel)] = "answer" multiline
pattern = "[\s\S]*\S[\s\S]*"
type = "text" label = "Your answer" required>
</material-input>
[\s\S]*\S[\s\S]* поможет сопоставить строку хотя бы с одним непробельным символом.
ПРИМЕЧАНИЕ. Чтобы включить все другие символы, используйте [\S\s], поскольку . не включает символ новой строки.
Это не работает для многострочных входов. Он выдает требуемую ошибку проверки, даже если присутствует символ, отличный от пробела, и нажата новая строка.
@Sabareesh: попробуй pattern = ".*[^ ].*" ... (Примечание: внутри квадратной скобки есть пробел)
это не проверяет новую строку. он проверяет только пробелы
Работающий. Большое спасибо. По сути, он соответствует всем символам по [\s\S]* и обязательному непробельному символу по \S, верно?
@Сабареш: да
Давайте продолжить обсуждение в чате.
Обратите внимание, что на самом деле используется валидатор шаблонов, который не передается во входные данные ниже. github.com/dart-lang/angular/blob/…
pattern = ".*\S+.*"с регулярным выражением