【问题标题】:How to validate input text length in material input?如何验证材料输入中的输入文本长度?
【发布时间】:2019-04-10 15:08:58
【问题描述】:

我正在使用 angular dart 开发应用程序。我正在使用角度飞镖材料输入来获取用户的输入。

我有一个多行文本输入,我使用材料输入和 type="text"。

我已将此字段设为“必填”,但问题是当用户输入空格或输入时,“必填”消失了。我需要一个属性,我可以在其中指定必须输入至少一个非空白字符的约束。

如何做到这一点?

这是我使用材料输入的代码:

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

【问题讨论】:

  • pattern=".*\S+.*" 带正则表达式

标签: input dart angular-material angular-dart


【解决方案1】:

根据documentation,您可以使用所有input 元素属性。

所有可用于普通&lt;input&gt;&lt;textarea&gt; 元素的属性也可以用于&lt;mat-form-field&gt; 内的元素

所以使用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]* 将有助于匹配至少包含一个非空格字符的字符串。

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

【讨论】:

  • 这不适用于多行输入。即使存在非空白字符并按下新行,它也会引发所需的验证错误。
  • @Sabareesh : 试试pattern=".*[^ ].*" ... (注意:方括号内有空格)
  • 这不是验证新行。它只检查空格
  • 工作。太感谢了。基本上,它匹配 [\s\S]* 的所有字符和 \S 的强制非空白字符,对吗?
  • @Sabareesh:是的
猜你喜欢
  • 2016-06-15
  • 1970-01-01
  • 1970-01-01
  • 2020-03-23
  • 2019-05-07
  • 2017-01-03
  • 2019-05-22
  • 2018-06-09
  • 1970-01-01
相关资源
最近更新 更多