如何验证 material 输入中的输入文本长度?

How to validate input text length in material input?

我正在使用 angular dart 开发应用程序。我正在使用 angular dart material 输入来获取用户的输入。

我有一个多行文本输入,我使用 material input 和 type="text".

我做了这个字段 "required" 但问题是当用户输入白色 space 或回车时,"required" 消失了。我需要一个属性,我可以在其中指定一个约束条件,即必须输入至少一个非白色 space 字符。

如何实现?

这是我使用 material 输入的代码:

<material-input
    ngControl="textAnswer" [(ngModel)]="answer" multiline
    type="text" label="Your answer" required>
</material-input>

根据 documentation,您可以使用所有 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 attribute来匹配自定义模式(正则表达式)。

<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]* 将有助于匹配至少一个非 space 字符的字符串。

注意:要包含所有其他字符,请使用 [\S\s],因为 . 不包含换行符。