关于angular:如何使用模式验证器来”仅添加大于 0 的数字”?

How to use the pattern validator to 'Add only numbers that are greater than 0'?

在这种形式中,当我添加新成分时,它适用于任何数字,无论是正数还是负数。

所以,如果我添加"数量为 5 的面包",它将显示:

enter

enter

enter

enter

知道为什么这不起作用吗?


您正在对名称字段应用模式。
将其应用于数字字段。


你的模式会奏效。但是,我认为值得提出三点:

1) 最重要的是,正如 Mian Taimoor Tahir 所指出的,您当前正在将模式应用于错误的输入。

2) 也就是说,一个更简单的模式是:

1
[1-9]\\d*

3) 最后,虽然您的问题特别提到了"如何使用模式验证器€|",但我认为在其他人也尝试使用模式属性的情况下,我认为值得在这里给出相同的答案.

即:输入可以使用 type="number" 以及 min=1step=1 参数,Nicholas K 也提到过。

看起来像这样:

1
<input type="number" min="1" step="1">

由于以下原因,这将是解决您的问题的更好方法:

  • 它是一个更易于理解的 API 供开发人员更新
  • 将插入浏览器步进器,明确这是一个数字输入
  • 它将为许多移动用户带来更好的键盘
  • 它将防止意外的、难以看到的错误,例如在输入中输入字母 O
  • 如果支持是一个问题,更多的浏览器(我相信)支持数字输入而不是模式属性